小编典典

Python Numpy Arange意外结果

python

我正在使用arange函数来定义for循环迭代并获得意外结果。

i = arange(7.8,8.4,0.05)
print i

满足以下条件:

[ 7.8   7.85  7.9   7.95  8.    8.05  8.1   8.15  8.2   8.25  8.3   8.35 8.4 ]

仍使用8.35的停止值,如下所示

i = arange(7.8,8.35,0.05)

产生以下

[ 7.8   7.85  7.9   7.95  8.    8.05  8.1   8.15  8.2   8.25  8.3 ]

但是我希望我的射程结束于8.35!我知道我可以使用> 8.35和<8.4的止损值来获得我的结果,但是为什么它与众不同并且在我看来不一致?

编辑:我正在使用2.7版


阅读 234

收藏
2021-01-20

共1个答案

小编典典

也许这与浮点数的限制有关。由于机器的精度,不可能将所有可能的值完美地存储为浮点数。例如:

>>> 8.4
8.4000000000000004
>>> 8.35
8.3499999999999996

因此,作为浮点数的8.4略大于8.4的实际值,而作为浮点数的8.35则稍小一点。

2021-01-20