【发布时间】:2018-11-17 16:57:07
【问题描述】:
我最近将一个脚本从 3.4 转换为使用 Python 2.7(应同事的要求),但我发现 math.ceil 函数的工作方式不一样...
当我将 5/2 除以 math.ceil() 时,我希望得到 math.ceil(5/2) = 3。
给定以下代码:
from __future__ import print_function
import math
a = 5
b = 2
c = math.ceil(a/b)
print("Ceiling output: {}".format(c))
Python 2.7 将报告 2 作为答案,Python 3.4 按预期报告 3。
这是为什么?
我知道如果我将 a 和 b 转换为 float,我可以让 2.7 工作:
c = math.ceil(float(a)/float(b)
但是,转换除法也不起作用:
c = math.ceil(float(a/b))
3.4 如何解决这个问题?
发现这一点让我质疑我需要在 2.7 版本的脚本中重新检查多少数学。
【问题讨论】:
标签: python python-3.x python-2.7 rounding