版权声明:《本文为博主原创文章,转载请注明出处。 》 https://blog.csdn.net/zbq_tt5/article/details/86564152
#include<stdio.h>
int main()
{
double i;
for(i=0;i!=10;i+=0.1)
printf("%.1lf\n",i);
return 0;
}
程序会无限循环下去,因为浮点数数值采用二进制表示,在二进制系统之无法精确表示1/10,就像十进制无法表示1/3一样!
比如,0.1*0.1的结果不是0.01,而是0.010000000000000002。
#include<stdio.h>
int main()
{
double i;
for(i=0.0;i-10.0<0;i+=0.1)
printf("%.1lf\n",i);
return 0;
}