For循环永远持续下去

时间:2017-04-24 21:14:37

标签: c++ for-loop

不知何故,当我运行这个程序时,它会继续下去,即使我写的方式让它在我达到10时停止。请帮助。

double i;
for(i = 0; i != 10; i+= 0.1){
    printf("%.1f\n", i);
} 

1 个答案:

答案 0 :(得分:5)

0.1无法准确表示为double

快速解决方法是将循环条件更改为i < 10

否则使用整数类型的循环变量,固定精度浮点数或其他任何东西。

但请注意,对于其他小数增量,特别是2的负幂(0.5,0.25等),如果整体迭代次数不是太高,它可能会起作用。