![](/img/trans.png)
[英]Why when using printf float and double show the same number of digits?
[英]Print a variable number of digits of a double using printf
任何人都知道是否可以使用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 ++,可以在與ios_base::precision()
組合中使用std::cout
: http : //www.cplusplus.com/reference/ios/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
你可以在這里閱讀更多相關信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.