2013-03-13 31 views
1

所以我有一個分配以匹配預期輸出:34.7381。但我得到34.73809999999999。我意識到這只是一個四捨五入的數字,只有4位小數,但我不知道如何在短時間內做到這一點。Python 3.0+設置爲最大4位小數和舍入

我可以強制它,並檢查小數點的位置,檢查後面有多少個字符,消除所有這些字符,並自己做四捨五入。但對於那麼簡單的事情來說,這似乎相當複雜和愚蠢。

謝謝你的幫助!

+0

你使用'float'還是'Decimal'?雖然你可能能夠輸出一個舍入結果或類似的東西,但你不能用'float'來得到精確的小數結果。 – 2013-03-13 03:01:17

回答

4

你試過round function

a = 34.73809999999999 
print round(a, 4) 
>>> 34.7381 
+0

從來沒有學過這一輪的方法。非常感謝! – Shaw 2013-03-13 03:16:18

+0

@ user2145694歡迎您 – 2013-03-13 03:18:46

1

不要擔心,只是說明你在想打印精度:

>>> print('{:.4f}'.format(34.73809999999999)) 
34.7381 
2

您可以使用字符串格式化:

>>> '{:0.4f}'.format(34.7381) 
    '34.7381' 
>>> '{:0.4f}'.format(34.73809999999999) 
    '34.7381' 
相關問題