C程序打印具有可变精度的数字

C program printing numbers with variable precision

你知道如何将一个数字四舍五入并以不是由某个自然数固定,而是由某个变量固定的精度打印吗?如果用户需要输入小数点后几位四舍五入,如何解决?

#include <stdio.h>
int main()
{
int r;
double var = 37.66666;
scanf("%d", &r);
printf("%.2f", var);
return 0;
}

以下是适用于您的情况的简单方法:
你只需要在f之前加上*就可以了。

#include <stdio.h>
int main()
{
int r;
double var = 37.66666;
scanf("%d", &r);
printf("%.*f",r, var);
return 0;
}

您可以用 * 代替精度,在这种情况下,您可以指定 int 作为精度。

printf("%.*f", r, var);