#include <stdio.h>main(){ float a; for(a=0.0;a<=1.0;a+=0.1) printf("%.1f\n",a);}为什么得不到1.0 ????
[此贴子已经被作者于2006-10-16 20:41:36编辑过]
楼上可以再解释清楚一点吗?不明白
为什么不执行? 就算a<=1.0当a为0.9时 也是要先执行a+=0.1才判断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;}