Python 2.7 为什么math.ceil()给出不同的答案

Python 2.7 为什么math.ceil()给出不同的答案,python-2.7,Python 2.7,我是python新手。我试图解决一个矩阵问题,其中我必须在循环中使用退出条件,例如,如果矩阵的列和行是3或4,那么我想运行循环2次,如果列和行是5或6,那么它运行3次 >>> math.ceil(1.5) 2.0 >>> i=3 >>> math.ceil(i/2) 1.0 这是因为在Python 2中,3/2不是1.5。从“未来”导入部门执行,然后它将成为您所期望的。首先尝试以下操作: i=3/2 print i j=float(3)/2

我是python新手。我试图解决一个矩阵问题,其中我必须在循环中使用退出条件,例如,如果矩阵的列和行是3或4,那么我想运行循环2次,如果列和行是5或6,那么它运行3次

>>> math.ceil(1.5)
2.0
>>> i=3
>>> math.ceil(i/2)
1.0

这是因为在Python 2中,
3/2
不是
1.5
。从“未来”导入部门执行
,然后它将成为您所期望的。

首先尝试以下操作:

i=3/2
print i
j=float(3)/2
print j
print math.ceil(j)
你应该看到

1
1.5
2.0
python处理整数除法的方式是采用下限

参考:


为什么会这样?这背后的原因是什么?@vj1207作者:Guido.Correct。注意下面的部分。Python中的整数除法将负值舍入到-infinite,而不是0。