首页 > 解决方案 > 在使用 np.arange() 时,它以错误的步长递增

问题描述

for i in np.arange(0.0,1.1,0.1):
    print(i)

输出:

0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6000000000000001
0.7000000000000001
0.8
0.9
1.0

预期输出:

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

标签: pythonnumpy

解决方案


它不会以错误的步长递增,这些只是浮点错误。从这里

这可以被认为是 Python 中的一个错误,但事实并非如此。这与 Python 关系不大,更多的是与底层平台如何处理浮点数有关。这是在系统内部处理浮点数时遇到的正常情况。这是浮点数的内部表示时引起的一个问题,它使用固定数量的二进制数字来表示十进制数。一些十进制数很难用二进制表示,所以在很多情况下,会导致小的舍入误差。


推荐阅读