2014-10-16 81 views
-2

我只是檢查以下東西在Python 2.7的Python:浮法附加值和減法給出錯誤的值

打印0.1 + 0.2

輸出: - 0.3

打印0.1 + 0.2 - 0.3

輸出: - 5.55111512313e -17

但我期望0.0 那麼,如何實現這個東西呢?

+0

的可能重複(HTTP://計算器。 COM /問題/ 588004/IS-浮點運算碎) – MattDMo 2014-10-16 19:22:30

回答

0

這裏的問題是float類型沒有足夠的精度來顯示你想要的結果。如果您嘗試打印部分總和0.1 + 0.2,則會看到您獲得的浮動結果爲0.30000000000000004。

因此,5.55111512313e-17是與浮點型變量最接近的結果。如果您嘗試將結果轉換爲int,那麼:

int(0.2 + 0.1 - 0.3) 

您會看到0,這是正確的整數近似值。 您可以通過使用小數類獲得浮點變量0.0。

試試這個:[?是浮點運算破]

from decimal import Decimal 
Decimal("0.2") + Decimal("0.1") - Decimal("0.3") 

,你會看到的結果是十進制( 「0.0」)