Matlab和Python中的浮点数有什么不同?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (189)

我从matlab "mat"文件版本5 导入一些数字到python ,他们有不同的精度。

这是python代码:

output_data = numpy.matlab.loadmat( ( path ), mat_dtype=True )

print(output_data)

Python3 output: -0.0030967733388058967-> 20 numbers or digits
Matlab output:  -0.00309677333880590  -> 18  "        "

为什么python和matlab会有不同的精度?

提问于
用户回答回答于

MATLAB和Python / Numpy默认使用相同的浮点表示,64位浮点数(双精度)。存储方式由CPU决定,而不是由程序决定(程序基本上可以选择32,64和80位浮点数,这是普通PC中CPU所理解的表示形式)。

您看到的差异是程序如何选择显示数字。内部表示是相同的。

如果显示的这些数字之间的差异对您的应用程序很重要,那么您做错了。根据定义,浮点计算是不精确的,你不能指望那些最后几位有意义。

扫码关注云+社区

领取腾讯云代金券