我正在使用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版
也许这与浮点数的限制有关。由于机器的精度,不可能将所有可能的值完美地存储为浮点数。例如:
>>> 8.4 8.4000000000000004 >>> 8.35 8.3499999999999996
因此,作为浮点数的8.4略大于8.4的实际值,而作为浮点数的8.35则稍小一点。