numpy余数函数返回的结果在给定浮点数时我不明白。我不确定这是一个错误还是我无法理解文档。例如
np.remainder(0.5, 0.001)
Out[165]: 0.00099999999999998961
np.remainder(0.499, 0.001)
Out[161]: 0.00099999999999998875
考虑到我对函数的理解,它们都应该为零。文档说该函数等同于x1 - floor(x1 / x2) * x2
,但检查这个给出了我期望的答案:
0.5 - np.floor(0.5/0.001)*0.001
Out[166]: 0.0
此外,
np.remainder(0.499*1000, 0.001*1000)
Out[160]: 0.0
深入了解为什么在给定浮点运算的情况下可能会出现这种情况。