簡體   English   中英

無法解釋為什么for循環運行5次而不是4次

[英]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 < 100a < 100 )通過並且在第5次運行之后a等於1000而不是100。

.01 * 10^4是100然而由於浮點精度,你很可能最終得到99.999324234或類似的東西。 這是由於從二進制數轉換為小數。

希望這個解釋有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM