我的代碼:浮點限制
a = '2.3'
我想顯示a
作爲浮點值。
由於a
是一個字符串,我想:
float(a)
我得到的結果是:
2.2999999999999998
我想對於這個問題的解決方案。請,請幫助我。我是this tutorial。
我的代碼:浮點限制
a = '2.3'
我想顯示a
作爲浮點值。
由於a
是一個字符串,我想:
float(a)
我得到的結果是:
2.2999999999999998
我想對於這個問題的解決方案。請,請幫助我。我是this tutorial。
我認爲它更多地反映了你對浮點類型的理解,而不是對Python的理解。請參閱my article about floating point numbers(基於.NET,但仍然相關),因爲這種「不準確」背後的原因。如果您需要保留精確的十進制表示形式,則應使用decimal module。
這不是python的缺點,而是浮點數存儲在計算機上的缺點。無論實施語言如何,您都會發現類似的問題。
你說你想'顯示'作爲浮點,爲什麼不顯示字符串?從視覺上來說,它與你期望的相同。如上所述,如果你的需求不僅僅是'顯示'浮點數,你應該使用十進制模塊來存儲確切的表示形式。
解釋原因的優秀答案。我只是想從標準庫中添加一個可能的實際解決方案:
>>> from decimal import Decimal
>>> a = Decimal('2.3')
>>> print a
2.3
這實際上是一個(非常)F.A.Q.對於Python,你可以read the answer here。
@ rejinacm.myopenid.com:你可能想刪除評論「這是Python的一個缺點。」 ! – 2009-01-02 09:25:48
-1對誰downvoted這個問題,而不是修復它的怪胎! – 2009-01-02 09:43:27