Python:math.ceil麻烦

时间:2013-06-19 23:39:44

标签: python math ceil

问题在于:

>>> 16/float(1184000)

返回:

1.3513513513513513e-05

如果我尝试在这个数字上运行math.ceil,我会得到“1”而不是“2”

>>>math.ceil(16/float(1184000))

返回:

1.0

这看起来很奇怪,任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

好像你错过了力量:-05

这个数字实际上是:

>>> '{:.20f}'.format(16/float(1184000))
'0.00001351351351351351'

所以答案是正确的。

答案 1 :(得分:2)

数字1是大于16/1184000的最小整数。这就是math.ceil()所做的。

1.3513513513513513e-05介于0和1之间,因此您的两个答案是一致的。

上面的数字读作“1.3513513513513513乘以10到负5次幂。”