所以我有一個分配以匹配預期輸出:34.7381。但我得到34.73809999999999。我意識到這只是一個四捨五入的數字,只有4位小數,但我不知道如何在短時間內做到這一點。Python 3.0+設置爲最大4位小數和舍入
我可以強制它,並檢查小數點的位置,檢查後面有多少個字符,消除所有這些字符,並自己做四捨五入。但對於那麼簡單的事情來說,這似乎相當複雜和愚蠢。
謝謝你的幫助!
所以我有一個分配以匹配預期輸出:34.7381。但我得到34.73809999999999。我意識到這只是一個四捨五入的數字,只有4位小數,但我不知道如何在短時間內做到這一點。Python 3.0+設置爲最大4位小數和舍入
我可以強制它,並檢查小數點的位置,檢查後面有多少個字符,消除所有這些字符,並自己做四捨五入。但對於那麼簡單的事情來說,這似乎相當複雜和愚蠢。
謝謝你的幫助!
你試過round function?
a = 34.73809999999999
print round(a, 4)
>>> 34.7381
從來沒有學過這一輪的方法。非常感謝! – Shaw 2013-03-13 03:16:18
@ user2145694歡迎您 – 2013-03-13 03:18:46
不要擔心,只是說明你在想打印精度:
>>> print('{:.4f}'.format(34.73809999999999))
34.7381
您可以使用字符串格式化:
>>> '{:0.4f}'.format(34.7381)
'34.7381'
>>> '{:0.4f}'.format(34.73809999999999)
'34.7381'
你使用'float'還是'Decimal'?雖然你可能能夠輸出一個舍入結果或類似的東西,但你不能用'float'來得到精確的小數結果。 – 2013-03-13 03:01:17