我試圖創建一個腳本,計數到3(步長0.1)使用while,我試圖讓它不顯示.0數字不帶小數(1.0應該顯示爲1,2.0應該是2 ...) 我試圖做的是將float轉換爲int,然後檢查它們是否相等。問題是,它僅適用於第一個數字(0),但是當它到達1.0和2.0這是行不通的..檢查小數點python
這是我的代碼:
i = 0
while i < 3.1:
if int(i) == i:
print int(i)
else:
print i
i = i + 0.1
這就是輸出我得到:
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3.0
輸出,我應該得到:
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
感謝您的時間。
浮點數不準確。有很多很好的教程。例如,請參見[每位計算機科學家應瞭解的浮點算術知識](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)。 – John1024
浮點運算是近似的。當你添加10次'.1'時,你不會得到'1.0'。 – Barmar
可能重複[浮點數學是否被破壞?](http://stackoverflow.com/questions/588004/is-floating-point-math-broken) – Barmar