1 我計算如下:浮點給出了錯誤的答案 >>> float(10.0-9.2) 0.800000000000000*7* 即使做了10.0-9.2上述結果。爲什麼額外的7會出現在結果中? 我在python 3.2上。 來源 2012-05-01 Rohan +1 [Python floating error with float numbers]的可能重複(http://stackoverflow.com/questions/5997027/python-rounding-error-with-float-numbers) – recursive +0 爲什麼你甚至會將float的結果減法到浮點數?你會期望它會成爲一個浮點數嗎? – mata +0 @mata:只能肯定 – Rohan
10 浮點算法內置問題,因爲它基於數字的二進制近似。 Python文檔中有a good explanation of this。 如果您需要更精確的答案,您可以檢出the decimal module。 來源 2012-05-01 19:55:00 +0 謝謝..一直在尋找這個。解答我的問題 – Rohan +0 你大大緩解了我的痛苦。起初我認爲這是一個錯誤,但它看起來太完美不準確,不能成爲與python類型邏輯有關的數學錯誤。 –
0 這是所有平臺上二進制浮點運算的典型代碼。如果您的應用程序不允許在此誤差範圍內發生舍入錯誤,則可以使用Decimal對象。 來源 2012-05-01 19:56:40 +2 當然,'decimal'也實現了浮點數,只是基礎不同 - 意思是說,你仍然會得到不準確的地方,只是人們習慣的那些。 – delnan +0 是的,他們只是不是「二進制」的浮點數。 –
[Python floating error with float numbers]的可能重複(http://stackoverflow.com/questions/5997027/python-rounding-error-with-float-numbers) – recursive
爲什麼你甚至會將float的結果減法到浮點數?你會期望它會成爲一個浮點數嗎? – mata
@mata:只能肯定 – Rohan