Python math.ceil的回合是5.5到1.0?

时间:2013-11-01 14:03:04

标签: python math

为什么math.ceil返回1.0而不是6.0?如果我删除math.ceil,则返回值为5.54815801154e-07

num = math.ceil(float(.25) / (float(100) * 4506)) 
print num
returns 1.0

3 个答案:

答案 0 :(得分:3)

你对科学记谱法感到困惑。

  • 5.5e3 = 5500
  • 5.5e2 = 550
  • 5.5e1 = 55
  • 5.5e0 = 5.5
  • 5.5e-1 = .55
  • 5.5e-2 = .055
  • ...
  • 5.5e-7 = .00000055

ciel(.00000055) = 1

你看,eN是计算机说*10^N的方式,就像你在学校看到的那样。

因此,5.5e-7 = 5.5*10^-7

答案 1 :(得分:1)

>>> float(.25) / (float(100) * 4506)
5.5481580115401685e-07

ceil()返回下一个大于该值的1的整数。

答案 2 :(得分:0)

math.ceil返回大于或等于x的最小的最小整数值。 5.54815801154e-07实际上并不是5,但实际上是一个非常小的数字。所以最接近的整数值是1.