void main()
{
char a;
float f = 10;
for(a=1; a<=5; a++)
{
f-=.2;
printf("\nf = %g", f);
}
}
这里for循环执行五次,每次f的值减去.2。但据我说,f的最终值应为9.0,但输出为9。 为什么f的值不是小数点?
答案 0 :(得分:2)
如果小数点后面没有非零数字,则%g
次转换不会显示小数点。您可以改为使用%f
,或明确指定要在小数点后面看到的位数,例如%.1g
始终显示1位数。
答案 1 :(得分:1)
因为f
的最终值为9
而没有小数部分。因此,printf
只是不打印它
如果您需要在这种情况下打印小数部分,可以在%.1f
中使用printf
,如下所示:
printf( "\nf = %.1f", f )