math.ceil(0.5) 返回与 math.ceil(1/2) 不同的值

math.ceil(0.5) returning different value from math.ceil(1/2)

import math
print(math.ceil(0.5))

Returns

1.0

但是

import math
print(math.ceil(1/2))

Returns

0.0

这是怎么回事?解释会很好。

您似乎正在 运行使用 python 2.x 来使用您需要强制转换为显式浮动的代码:

import math
print(math.ceil(0.5))
print(math.ceil(float(1) / float(2)))

如果你 运行 python 3.x 你将不需要明确地进行转换,你会得到相同的输出:

import math
print(math.ceil(0.5))
print(math.ceil(1 / 2))
import math
print(math.ceil(1/float(2)))