为什么int值会出现浮动值?

时间:2016-09-29 11:02:20

标签: c

 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的值不是小数点?

2 个答案:

答案 0 :(得分:2)

如果小数点后面没有非零数字,则%g次转换不会显示小数点。您可以改为使用%f,或明确指定要在小数点后面看到的位数,例如%.1g始终显示1位数。

答案 1 :(得分:1)

因为f的最终值为9而没有小数部分。因此,printf只是不打印它 如果您需要在这种情况下打印小数部分,可以在%.1f中使用printf,如下所示:
printf( "\nf = %.1f", f )