我认为在范围内,第二个参数永远不会包含在列表中, 但是看看Python 2.7.3中会发生什么。
>>> import numpy
>>> numpy.arange(0.2,0.9,0.1)
array([ 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8])
>>> numpy.arange(0.2,0.7,0.1)
array([ 0.2, 0.3, 0.4, 0.5, 0.6])
>>> numpy.arange(0.2,0.6,0.1)
array([ 0.2, 0.3, 0.4, 0.5])
但
>>> numpy.arange(0.2,0.8,0.1)
array([ 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8])
有人知道这种行为的原因吗?
答案 0 :(得分:4)
答案 1 :(得分:4)
In [169]: val = 0.2
In [170]: for i in range(6): #simulating the loop in arange.
.....: val += 0.1
.....:
In [171]: val
Out[171]: 0.7999999999999999
浮点舍入错误。结果是还打印了最后一个值。