选择使用变量点后打印的数字

时间:2018-03-10 19:39:09

标签: c printf double

让我们说例如我想在点后打印结果3数字。

我可以使用以下代码:

  printf("%.3f",result); 

我想使用变量" precision"而不是写3

  printf("%.precisionf");

我该怎么做呢

2 个答案:

答案 0 :(得分:4)

使用有点遗忘的".*"格式:

printf("%.*f", precision, result);

其中precisionint。完整的计划:

#include <stdio.h>
int main(void) {
    double result = 1.234567;
    int precision = 3;
    printf("%.*f", precision, result);
}

请参阅https://ideone.com/WFimaU

答案 1 :(得分:3)

您可以使用sprintf以下列方式创建格式字符串:

char tmp[10];
sprintf(tmp,"%%.%df",precision);
printf(tmp, result);

简单,不要?