3

我在使用 Python 2.7 的 Google-App-Engine 项目中使用了一些用 Python 3 编写的旧代码。Python 3 和 Python 2 中不同的 round() 算法让我很头疼。有什么方便的方法可以在 Python 2.7 中实现 Python 3 的 round() 方法吗?

另一个问题:Python 2 和 Python 3 处理整数运算的方式完全不同。例如,以下语句在 Python 2 和 3 中具有不同的输出:

2/4   # 0 in Python 2, 0.5 in Python 3
round(3/2)  
math.ceil(0.5)   # 1.0 in Python 2, 1 in Python 3

有什么简单的方法可以将代码从 Python 3 转换为 Python 2,同时保持行为完全相同?

谢谢!

4

1 回答 1

4

未来实施银行家四舍五入。可以通过__future__导入将浮点除法设为默认值。

from __future__ import division
from future.modified_builtins import round
于 2013-08-08T00:49:14.293 回答