2015-10-02 39 views
1

由於硬件和內存的限制,我們遇到了浮點問題。我的問題是,如何在Python中:0.1 + 0.1 + 0.1 == 0.3返回False,而Mathematica返回它TruePython和Mathematica中的浮點數

Wolfram是如何管理它的工作的,Python開發人員可以實現他們的解決方案嗎?

+1

如果您在Python中需要精確的浮點精度,請查看['decimal'](https://docs.python.org/3/library/decimal.html)模塊。 – MattDMo

+0

這是另一種方式。 Wolfram產品近似於結果。 Python正在做正確的事情。而且您不應該執行此類檢查或將其明確化,例如,請參閱https://www.python.org/dev/peps/pep-0485/ – percusse

+0

感謝您提供豐富的意見。 – KitKat

回答

5

從鎢文檔在https://reference.wolfram.com/language/ref/Equal.html

與機器精度或更高近似數,如果它們至多過去七年二進制數字(大約他們的最後兩位數字)的不同之處被認爲是相等的。

所以這只是==比較的不同規則。

+0

非常感謝Alan。這是答案,但由於聲譽不足,我還不能投票。 – KitKat

+1

對於你自己的問題,你應該接受一個合適的答案,而不是投票:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Alan