Python-仅当使用浮点作为除数时,除法才起作用

Python-仅当使用浮点作为除数时,除法才起作用,python,floating-point,semantics,integer-division,Python,Floating Point,Semantics,Integer Division,为什么我的代码只有在我把除数变成浮点数时才起作用 a = 50/1000.0*100 当我执行以下操作时,它返回0 a = 50/1000*100 在Python2.x中,50/1000是0,因为整数除法假定您想要整数结果。如果您将分子或分母转换为浮点,您将获得正确的行为。或者,您可以使用 来自未来进口部门 获取Python3.x语义。在Python2中,当两个操作数都是整数时,a/b与a//b相同,这意味着您得到整数除法50/1000是0(余数为50,正如您从divmod(50,1000)

为什么我的代码只有在我把除数变成浮点数时才起作用

a = 50/1000.0*100
当我执行以下操作时,它返回0

a = 50/1000*100

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

来自未来进口部门


获取Python3.x语义。

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

如果您使用python 2.X,上面的结果是 如果使用Python3.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
>>> 
可能重复的