请教一个百思不得其解的问题!
#include <stdio.h>
main()
{
float a;
for(a=0.0;a<=1.0;a+=0.1)
printf("%.1f\n",a);
}
为什么得不到1.0 ????
#include <stdio.h>
main()
{
float a;
for(a=0.0;a<=1.0;a+=0.1)
printf("%.1f\n",a);
}
为什么得不到1.0 ????
楼上可以再解释清楚一点吗?不明白
为什么不执行? 就算a<=1.0当a为0.9时 也是要先执行a+=0.1才判断a<=1.0
#include <stdio.h>
main()
{
float a;
for(a=0.0;a<=1.0;a+=0.1)
printf("%.1f\n",a);
}
为什么得不到1.0 ????
浮点数没有真正意义上的相等,比如说0.0000001和0.00000011,计算机只会默认相等.这里会执行到1.0,但它相等是比较不出来的.
噢 明白了 谢谢
可以改为
#include <stdio.h>
main()
{
float a, sum;
for(a=0.0;a<=1.0;a+=0.1)
sum+=0.1;
printf("%.1f\n",sum);
return 0;
}
第 9 楼,会有问题
#include <stdio.h>
int main()
{
float a,sum=0;
for(a=0.0;a<=1.0;a+=0.1)
sum+=0.1;
printf("%.1f\n",sum);
return 0;
}