[英]Can't figure why for-loop runs 5 times and not 4 times
我很難弄清楚為什么這個for循環運行5次而不是4次,因為我在閱讀代碼時“計算”了。
float a;
int i = 0;
for(a = 0.01; a < 100; a *= 10)
i++;
cout << i << endl;
我的想法:在第4次運行之后, a
值為100
,因為for循環應該'break',因為100 不小於100( a < 100
),給出cout << i
的輸出cout << i
應該是4
。
然而,循環運行5次而不是4次,這對我來說沒有意義,因為100 < 100
( a < 100
)通過並且在第5次運行之后a
等於1000而不是100。
.01 * 10^4
是100然而由於浮點精度,你很可能最終得到99.999324234
或類似的東西。 這是由於從二進制數轉換為小數。
希望這個解釋有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.