任何人都知道是否可以使用 printf 打印 VARIABLE 位数?
以下代码行正好打印 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++,您可以结合使用:
httpstd::cout
: //www.cplusplus.com/reference/ios/ios_base/precision/ios_base::precision()
如果你使用 C++,你可以使用 setprecision :
#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
你可以在这里阅读更多关于它的信息