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;
}