为什么Python返回0进行简单的除法运算?
为什么这个简单的计算返回0
>>> 25/100*50 0
而这实际上计算正确?
>>> .25*50 12.5 >>> 10/2*2 10
第一个例子有什么问题?
在Python 2中,执行整数25/100
时, 25/100
为零。 因为结果小于1
。
您可以通过from __future__ import division
添加到您的脚本来“解决”这个问题。 这将始终使用/
运算符执行浮点除法,并使用/
整数除法。
另一种select是使至less一个操作数为浮点数,例如25.0/100
。
在Python 3中, 25/100
总是0.25
。
这是整数截断的问题(即,数字的任何小数部分被丢弃)。 所以:
25 / 100
给出0
但是,只要分区中至less有一个操作数是浮点数,就会得到一个浮点数结果:
25 / 100.0
或25.0 / 100
或25.0 / 100.0
均为0.25
25/100
是一个整数计算, 25/100
(截断)为0
。