是否可以使用printf来打印可变的数字?
以下代码将仅打印数字2:
printf("%.2lf", x);
但是假设我有一个变量:
int precision = 2;
有没有一种方法可以在printf中指定数字的位数?
否则我就得写一个“switch”或“if”结构。
谢谢。
可能性存在:
#include <stdio.h>
int main() {
int precision = 3;
float b = 6.412355;
printf("%.*lf\n",precision,b);
return 0;
}
int precision = 2;
printf("%.*lf", precision, x);
printf("%*d", width, num)
:
请参见这里:http://linux.die.net/man/3/printf
如果您使用的是C ++,则可以结合使用std::cout
和ios_base :: precision()
:
请参见这里:http://www.cplusplus.com/reference/ios/ios_base/precision/
#include <iostream>
#include <iomanip> // std::setprecision
int main () {
int precision = 2;
double f =3.14159;
std::cout << std::setprecision(precision) << f << '\n';
++precision;
std::cout << std::setprecision(precision) << f << '\n';
return 0;
}
输出:
3.1
3.14
C++
。如果您正在使用 C
,请不要将问题标记为 C++
,这会导致许多无法使用的答案。 - olevegard