我正在从Matlab priority
文件版本5导入一些数字到python中,它们具有不同的精度。
这是python代码:
"mat"
为什么python和matlab具有不同的精度?
答案 0 :(得分:2)
默认情况下,MATLAB和Python / Numpy都使用相同的浮点表示形式,即64位浮点数(双精度)。如何存储它是由您的CPU决定的,而不是由程序决定的(该程序基本上可以在32位,64位和80位浮点数之间进行选择,这是普通PC在CPU中理解的表示形式。)
您看到的区别是程序如何选择显示数字。内部表示是相同的。
如果显示的这些数字之间的差异与您的应用程序有关,则您做错了。浮点计算从定义上讲是不精确的,您不能指望后几位有意义。
答案 1 :(得分:1)
希望此链接中的答案有帮助:
引用回答问题的人:
通常,MATLAB使用双精度,这大致意味着您 可以期望16位精度。
答案 2 :(得分:0)
我注意到Python的行为与其他软件包(包括Matlab(也是SPSS Modeler,Excel)。 也就是说,有时会以某种方式提供1-2个额外的小数。 例如:
In [53]: import numpy
In [54]: numpy.pi
Out[54]: 3.141592653589793
In [55]: numpy.pi * 10000
Out[55]: 31415.926535897932
In [56]: numpy.pi * 100000
Out[56]: 314159.2653589793
In [57]: len(str(numpy.pi))
Out[57]: 17
而其他人则坚持使用16位“有意义”的数字