#include<stdio.h>
int main()
{
double i;
for(i=0;i!=10;i+=0.1)
printf("%.1lf\n",i);
return 0;
}
for循环不应该在 打印9.9 之后遇到 i==10 停止吗?
怎么会这样?
#include<stdio.h>
int main()
{
double i;
for(i=0;i!=10;i+=0.1)
printf("%.1lf\n",i);
return 0;
}
for循环不应该在 打印9.9 之后遇到 i==10 停止吗?
怎么会这样?
小数计算是有误差的,计算机是二进制计算,小数转化成二进制有无限循环的情况,有误差
你可以多看几位小数就知道了
#include<stdio.h>
int main()
{
double i;
for(i=0;i<=10;i+=0.1)
printf("%.30lf\n",i);
return 0;
}