For循环永远持续下去

Hap*_*rus 1 c++ for-loop

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

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

bip*_*pll 5

0.1不能准确表示为double.

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

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

但是请注意,如果整体迭代次数不是太高,那么使用其他小数增量,尤其是2的负幂(0.5,0.25等),它可能会起作用.