c++ printf float - 如何以编程方式指定精度?
c++ printf float - how to specify precision programmatically?
printf("float: %.3f", myvar);
打印点后 3 位数字的 myvar。但是,如果我要打印的位数是动态的并在 int 变量中指定,我该怎么做呢?
您可以使用 %.*f
并在要打印的数据前添加 int
值。
#include <cstdio>
int main(void) {
double myvar = 3.141592653589;
for (int i = 0; i < 10; i++) {
printf("float: %.*f", i, myvar);
putchar('\n');
}
return 0;
}
更多地融入现代 c++,并作为替代
MikeCAT 回应
#include <iomanip>
#include <iostream>
int main()
{
constexpr int precision = 2;
std::cout << std::fixed << std::setprecision( precision ) << 10.1234 << std::endl; // outputs: 10.12
return 0;
}
printf("float: %.3f", myvar);
打印点后 3 位数字的 myvar。但是,如果我要打印的位数是动态的并在 int 变量中指定,我该怎么做呢?
您可以使用 %.*f
并在要打印的数据前添加 int
值。
#include <cstdio>
int main(void) {
double myvar = 3.141592653589;
for (int i = 0; i < 10; i++) {
printf("float: %.*f", i, myvar);
putchar('\n');
}
return 0;
}
更多地融入现代 c++,并作为替代 MikeCAT 回应
#include <iomanip>
#include <iostream>
int main()
{
constexpr int precision = 2;
std::cout << std::fixed << std::setprecision( precision ) << 10.1234 << std::endl; // outputs: 10.12
return 0;
}