使用实际浮动尺寸打印浮动

时间:2019-10-02 02:55:59

标签: c

我正在尝试打印出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,而没有使用我使用的任何值对其进行硬编码通过?

2 个答案:

答案 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);
相关问题