在句点之后返回所有数字的浮点数

时间:2018-05-24 12:54:37

标签: python

想问,为什么 5 / 100 回报 0 ,但它适用 5 * 0.01 ,即使算术两者都应该返回相同的值?

即使float(5 / 100)返回0.0

2 个答案:

答案 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