Python Numpy.linalg.det()返回不正确的结果
有人知道为什么Numpy返回“-2.0000000000000004”而不是“-2”吗Python Numpy.linalg.det()返回不正确的结果,python,windows,python-3.x,numpy,runtime-error,Python,Windows,Python 3.x,Numpy,Runtime Error,有人知道为什么Numpy返回“-2.0000000000000004”而不是“-2”吗 我正在使用Python 3.4.2(x64)、Numpy 1.9.1和Windows 7 x64。使用round,第二个参数为2(或根据需要) 例如: M = [[1,2],[3,4]] print ( numpy.linalg.det(M) ) # -2.0000000000000004 print ( round(numpy.linalg.det(M),2) ) # -2.0
我正在使用Python 3.4.2(x64)、Numpy 1.9.1和Windows 7 x64。使用
round
,第二个参数为2
(或根据需要)
例如:
M = [[1,2],[3,4]]
print ( numpy.linalg.det(M) ) # -2.0000000000000004
print ( round(numpy.linalg.det(M),2) ) # -2.0
这是由于。我不会担心的。这很自然。@Marcin在Numpy文档中一切正常-Numpy.linalg.det()函数返回-2.0,如果计算数组的行列式,如a=1*4-3*2,则得到int值a=-2@Natasha:阅读Marcin链接的教程(或几乎相同的)
-2.0000000000000004
和-2
相隔一位,因此这只是无意义的舍入误差。他们可能已将打印精度设置为1或2,例如np.set\u printoptions(精度=2)
。或者在Ipython中:%precision%0.2f
现在一切都清楚了,谢谢同志们-*
M = [[1,2],[3,4]]
print ( numpy.linalg.det(M) ) # -2.0000000000000004
print ( round(numpy.linalg.det(M),2) ) # -2.0