Python 2.7 关于python中yield的用法

Python 2.7 关于python中yield的用法,python-2.7,Python 2.7,我写这段代码: def frange(start, end, increase): x = start while x < end: yield x x = x + increase print(list(frange(1, 2, 0.3))) 但是我不知道为什么最后一个元素是1.900000000000001,而不是1.9。 您能告诉我原因吗?使用的文档来了解原因。这与收益率无关,但与表示浮点值的限制有关。Python不仅仅是对你隐瞒这一点的语言。Python太诚实了

我写这段代码:

def frange(start, end, increase):
x = start
while x < end:
    yield x
    x = x + increase

print(list(frange(1, 2, 0.3)))
但是我不知道为什么最后一个元素是
1.900000000000001
,而不是
1.9

您能告诉我原因吗?

使用的文档来了解原因。

这与
收益率无关,但与表示浮点值的限制有关。Python不仅仅是对你隐瞒这一点的语言。Python太诚实了。
[1, 1.3, 1.6, 1.9000000000000001]