2015-07-13 52 views
2

下輸出出乎我的意料:總和花車:意想不到的結果

1.1 + 2.2 
=> 3.3000000000000003 

一個意外的小數字從總和上來。其他加數也不會發生這種情況,例如:

3.0 + 0.3 
=> 3.3 

我在Python 2.7和3.4中都試過,但結果是一樣的。這個結果的意外結果是什麼原因?

+5

我認爲[文檔提到這個(HTTPS://docs.python .ORG/2 /教程/ floatingpoint.html)。 –

+3

必須閱讀:http://floating-point-gui.de/ – JBernardo

回答

1

最終,當涉及到它時,計算機正在使用二進制數字。一些小數不會像我們想要的二進制數字那樣整齊。結果值包括一些遺留的數字垃圾。

2

主要是因爲二進制不能很好地使用小數(2和10是互質)並且浮點數的精度有限。