Skip to main content
 首页 » 编程设计

python之为什么 Python 2.7 报告不正确的上限值

2025年05月04日15cmt

<分区>

我最近将一个脚本从 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 版本的脚本中重新检查多少数学。