-3

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

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

3 回答 3

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

ceil(.00000055) = 1

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

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

于 2013-11-01T14:07:17.247 回答
1
>>> float(.25) / (float(100) * 4506)
5.5481580115401685e-07

ceil()返回下一个大于在这种情况下为 1 的值的整数。

于 2013-11-01T14:06:21.217 回答
0

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

于 2013-11-01T14:09:27.263 回答