我在公司每天使用Python 2.4工作。我使用了標準數學庫中的多功能對數函數'log',當我輸入log(2 ** 31,2)時,它返回31.000000000000004,這讓我覺得有點奇怪。Python中的不準確對數
我做了與2的其他權力相同的事情,它的工作完美。我跑了'log10(2 ** 31)/ log10(2)',我得到了一輪31.0
我試着在Python 3.0.1中運行相同的原始函數,假設它是在一個更高級版本中修復的。
爲什麼會出現這種情況? Python中的數學函數有可能存在一些不準確的情況嗎?
重複常年浮點問號(?爲什麼我收到的浮點錯誤),也無法找到最佳的重複Q可發佈的,也許別人可以。 – 2009-06-01 13:55:22
我應該指出,Python 3沒有*修復了浮點錯誤。相反,打印輸出使用智能算法來顯示預期的浮點值,而不是鬆弛值。 – 2010-06-15 15:15:52