我很难弄清楚为什么这个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 < 100
(a < 100
)通过并且在第5次运行a
之后等于1000而不是100。
答案 0 :(得分:12)
document_idle
是100但是由于浮点精度,您很可能最终得到.01 * 10^4
或类似的东西。这是由于从二进制数转换为小数。
希望这个解释有所帮助。