我正在尝试打印出x精度级别的格式,这意味着如果x = 10则应该打印
float foo;
printf("levels of accuracy %.10f", foo);
我尝试过的方法: 我已经有了数学运算将x转换为所需的小数位。 像..
int multiplier = 10;
float initialaccuracy = 1.0;
float threshold = initialaccuracy / ((float)(pow(multiplier, accuracy)));
我想知道的事情:
我如何将x的格式用于printf,所以如果我选择x = 4,它将是%.4f,或者如果我选择15,它将是%.15f,而没有使用我使用的任何值对其进行硬编码通过?
答案 0 :(得分:3)
您可以将*
代替精度说明符,并将其作为单独的参数传递:
int accuracy = 10;
printf("levels of accuracy %.*f", accuracy, foo);
答案 1 :(得分:0)
或者,“即时”构建格式字符串...
char fmt[99];
sprintf(fmt,"levels of accuracy %%.%df",accuracy);
printf(fmt,foo);