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/b
与a//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
>>>
为什么我的代码只有在将除数转换为浮点数时才有效?
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/b
与a//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
>>>