我有一个numpy.float64对象,我们称之为A的值为' 1.0'这是从我正在使用的程序生成的,我检查了它的类型
我使用numpy.float64(1.0)
创建对象B.当我减去这两个时,我奇怪地得到这个值:-2.22044604925e-16当我实际期望值为0时
现在,当我从A中减去A时,我得到0
我不确定发生了什么,为什么我没有得到0值,任何指针?
答案 0 :(得分:1)
这很可能是由于浮点数具有有限的精度。短的,不完全真实但足够接近给你的想法答案,是A是一个更像1.00000000000001
而不是1.0
的数字,但它打印为1.0,因为当你打印它们时会出现问题。
一个好的,完全正确的,而不仅仅是如上所述的真实,参考在这里:https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html