想问,为什么
5 / 100
回报
0
,但它适用
5 * 0.01
,即使算术两者都应该返回相同的值?
即使float(5 / 100)
返回0.0
答案 0 :(得分:1)
我猜你正在使用 Python 2.x ,因为5 / 100
在 Python 3.x上返回0.05
要在 Python 2.x 上实现所需的行为,您需要继承此功能:
from __future__ import division
print 5 / 100 # Yields 0.05
如果您只想这样做一次并且不修改解释器默认行为,您可以将其中一个操作数强制转换为float
print 5 / float(100) # Yields 0.05
答案 1 :(得分:1)
5/100
返回0
,因为您要划分两个整数,而不是浮点数。任何两个整数的除法都将返回一个整数。
float(5/100)
的原因相同。在这种情况下,您首先划分两个整数,然后将其结果(整数0
)转换为浮点数。
如果算术运算中的任何数字是浮点数,那么结果也将是浮点数。
例如,float(5)/100
。这将返回0.05
,因为您将浮点数(即float(5)
)除以整数100
。