2011-04-22 63 views
0

可能重複:
Floating Point LimitationsPython的浮點數表示

您好,

也許這有一個非常簡單的答案。我正在玩Python解釋器。

>>> 1 
1 
>>> 1.1 
1.1000000000000001 
>>> 1.2 
1.2 

爲什麼1.1被解釋爲1.1000000000000001

+1

因爲你還沒有切換到Python 3 – joaquin 2011-04-22 09:58:17

+4

請搜索。浮點問題很常見。也許每個星期都有人問這個問題。例如,所有這些都是相同的問題:http://stackoverflow.com/search?q=%5Bpython%5D+floating-point。 – 2011-04-22 10:00:13

回答

1

這是由於數字在內部存儲的方式。該格式在IEEE_754-2008 speficiation中指定。

一些更多的信息可以在單精度找到漂浮here

1

The Floating-Point Guide:

爲什麼我的數字,像0.1 + 0.2加起來一個漂亮的圓0.3, 代替我得到一個奇怪的結果,如 0.30000000000000004?

因爲內部,計算機使用 格式(二進制浮點),該 不能準確地表示多個 像0.1,0.2或0.3的。

當代碼被編譯或解釋 ,你的「0.1」是已經 四捨五入至在於 格式最接近的數字,這導致一個小 舍入誤差的 計算髮生甚至之前。

0

,你可以看看here在巨蟒-3浮點運算問題和限制

在任何情況下,你必須:

>>> 1 
1 
>>> 1.1 
1.1 
>>> 1.2 
1.2 
>>>