Python - 除数仅在使用浮点数作为除数时有效

Python - Divide only worked when used floating point for divisor

为什么我的代码只有在将除数转换为浮点数时才有效?

a = 50/1000.0*100

当我执行以下操作时,它返回了 0。

a = 50/1000*100

50/1000 在 python 2.x 中为 0,因为整数除法假定您需要整数结果。如果您将分子或分母转换为浮点数,您将获得正确的行为。或者你可以使用

from __future__ import division

获取 python 3.x 语义。

当Python2 中两个操作数都是整数时,a/ba//b 相同,意味着得到整数除法。 50 / 1000 在这种情况下为 0(余数为 50,正如您从 divmod(50, 1000) 的 return 值中看到的那样)。

如果你使用python 2.X 以上结果来了 如果使用 python 3.x 结果是

Python 3.4.3 (default, Jul 28 2015, 18:24:59) 
[GCC 4.8.4] on linux
>>> a = 50/1000*100
>>> a
5.0
>>> a = 50/1000.0*100
>>> a
5.0
>>>