任何人都知道是否可以使用printf打印可變數字的數字?使用printf打印雙精度數字的可變數字
的代碼打印下面這行正是2:
printf("%.2lf", x);
但讓我們說我有一個變量:
int precision = 2;
是否有使用它在printf中指定的位數的方式?我不得不寫一個'switch'或'if'結構。
感謝
任何人都知道是否可以使用printf打印可變數字的數字?使用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);
感謝。這正是我所希望的。我已經使用C多年了,不知何故錯過了這個小竅門。 – pHbits
是:printf("%*d", width, num)
: 在這裏看到:http://linux.die.net/man/3/printf
如果您正在使用C++,你可以在com中使用std::cout
biation與ios_base::precision()
: http://www.cplusplus.com/reference/ios/ios_base/precision/
謝謝,c不是C++ – pHbits
如果使用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
你可以閱讀更多關於它here
爲什麼浮動? –
爲精度...沒關係,你的答案是偉大的。謝謝。 – pHbits