Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是问题:
>>> 16/float(1184000)
返回:
1.3513513513513513e-05
如果我尝试在这个数字上运行 math.ceil,我会得到“1”而不是“2”
>>>math.ceil(16/float(1184000))
1.0
这似乎很奇怪,任何想法如何解决这个问题?
好像你错过了力量: -05:
-05
这个数字实际上是:
>>> '{:.20f}'.format(16/float(1184000)) '0.00001351351351351351'
所以答案是正确的。
数字 1 是大于 16/1184000 的最小整数。就是math.ceil()这样。
math.ceil()
1.3513513513513513e-05 介于0和1之间,所以你的两个答案是一致的。
上面的数字读作“1.3513513513513513 乘以 10 的负 5 次方”。