无法解释为什么for循环运行5次而不是4次

时间:2017-12-26 01:11:08

标签: c++

我很难弄清楚为什么这个for循环运行5次而不是4次,因为我"计算"在阅读代码时。

float a;
int i = 0;
for(a = 0.01; a < 100; a *= 10)
    i++;
cout << i << endl;

我的想法: 第4次运行后,a的值为100,因此for循环应该“突破”。 如果100 小于100(a < 100),则cout << i的输出应为4

然而,循环运行5次而不是4次,这对我来说没有意义,因为100 < 100a < 100)通过并且在第5次运行a之后等于1000而不是100。

1 个答案:

答案 0 :(得分:12)

document_idle是100但是由于浮点精度,您很可能最终得到.01 * 10^4或类似的东西。这是由于从二进制数转换为小数。

希望这个解释有所帮助。