如何让程序允许用户选择他们希望在浮动值中打印多少个小数?
例如,以下代码
#include <stdio.h>
int main(){
float x;
x = 0.67183377;
printf("%.2f\n", x);
}
会给我们一个0.67
的输出。但是如果用户希望看到完整的数字,或者直到第四个小数位,那该怎么办呢。他们将如何做到这一点?
答案 0 :(得分:7)
有关详细信息,请参阅printf()
。使用:
printf("%.*f\n", n, x);
其中n
是int
,其中包含要打印的小数位数。请注意,float
只能保存大约6-7个十进制数字;示例中的第8个将在很大程度上无关紧要。
#include <stdio.h>
int main(void)
{
float x = 0.67183377;
for (int n = 0; n < 10; n++)
printf("%.*f\n", n, x);
return(0);
}
示例输出:
1
0.7
0.67
0.672
0.6718
0.67183
0.671834
0.6718338
0.67183375
0.671833754
在将值传递给double
之前,该值将转换为printf()
,因为所有可变参数函数都会发生这种情况。当x
更改为double
时,输出为:
1
0.7
0.67
0.672
0.6718
0.67183
0.671834
0.6718338
0.67183377
0.671833770