浮点运算和numpy余数函数

时间:2016-02-20 21:42:03

标签: python numpy floating-point

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

深入了解为什么在给定浮点运算的情况下可能会出现这种情况。

0 个答案:

没有答案