numpy浮点减法精度问题

时间:2016-03-13 21:53:21

标签: python numpy floating-point

我有一个numpy.float64对象,我们称之为A的值为' 1.0'这是从我正在使用的程序生成的,我检查了它的类型

我使用numpy.float64(1.0)

创建对象B.

当我减去这两个时,我奇怪地得到这个值:-2.22044604925e-16当我实际期望值为0时

现在,当我从A中减去A时,我得到0

我不确定发生了什么,为什么我没有得到0值,任何指针?

1 个答案:

答案 0 :(得分:1)

这很可能是由于浮点数具有有限的精度。短的,不完全真实但足够接近给你的想法答案,是A是一个更像1.00000000000001而不是1.0的数字,但它打印为1.0,因为当你打印它们时会出现问题。

一个好的,完全正确的,而不仅仅是如上所述的真实,参考在这里:https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html