我在公司每天使用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