Python 中内置的 round() 函数是否在 2.4 和 2.7 之间发生了变化?
蟒蛇2.4:
Python 2.4.6 (#1, Feb 12 2009, 14:52:44)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = 1480.39499999999998181010596454143524169921875
>>> round(f,2)
1480.4000000000001
>>>
蟒蛇 2.7:
Python 2.7.1 (r271:86832, May 13 2011, 08:14:41)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = 1480.39499999999998181010596454143524169921875
>>> round(f, 2)
1480.39
>>>
无论如何要恢复 Python 2.4 的行为吗?
我知道正确的答案当然是使用十进制算术模块。不幸的是,鉴于时间限制,目前这可能不是一个选择。
更新
对于上下文,我正在比较两个系统中的值,其中一个使用十进制表示,另一个使用浮点表示。这可能(或可能不是)需要进一步检查的系统之间的合法差异,因此我将咨询用户并在“报告”级别处理它,而不是在我从系统获取数据时.
谢谢你的帮助!