Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy.linalg.det()返回不正确的结果_Python_Windows_Python 3.x_Numpy_Runtime Error - Fatal编程技术网

Python Numpy.linalg.det()返回不正确的结果

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

有人知道为什么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

这是由于。我不会担心的。这很自然。@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