Python Numpy Arange意外结果

发布于 2021-01-29 15:02:05

我正在使用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版

关注者
0
被浏览
88
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    >>> 8.4
    8.4000000000000004
    >>> 8.35
    8.3499999999999996
    

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看