您好,
也許這有一個非常簡單的答案。我正在玩Python解釋器。
>>> 1
1
>>> 1.1
1.1000000000000001
>>> 1.2
1.2
爲什麼1.1
被解釋爲1.1000000000000001
?
您好,
也許這有一個非常簡單的答案。我正在玩Python解釋器。
>>> 1
1
>>> 1.1
1.1000000000000001
>>> 1.2
1.2
爲什麼1.1
被解釋爲1.1000000000000001
?
這是由於數字在內部存儲的方式。該格式在IEEE_754-2008 speficiation中指定。
一些更多的信息可以在單精度找到漂浮here
爲什麼我的數字,像0.1 + 0.2加起來一個漂亮的圓0.3, 代替我得到一個奇怪的結果,如 0.30000000000000004?
因爲內部,計算機使用 格式(二進制浮點),該 不能準確地表示多個 像0.1,0.2或0.3的。
當代碼被編譯或解釋 ,你的「0.1」是已經 四捨五入至在於 格式最接近的數字,這導致一個小 舍入誤差的 計算髮生甚至之前。
因爲你還沒有切換到Python 3 – joaquin 2011-04-22 09:58:17
請搜索。浮點問題很常見。也許每個星期都有人問這個問題。例如,所有這些都是相同的問題:http://stackoverflow.com/search?q=%5Bpython%5D+floating-point。 – 2011-04-22 10:00:13