为什么用 Syslab 计算出来的结果比 Matlab 计算出来的结果长度少 1 位?
技术分享
发布于 2025-08-06 16:31:59
查看 1过去300天
问题现象
运行下图所示的代码:
https://chat.tongyuan.cc/uploads/default/original/1X/7b6c60c7fdcd0c1dc9988a0808b2fac8d4de3825.png
原因分析
问题现象中的代码在 Juia 和 Matlab 里面实际计算结果一致,如下图所示:

分析原因是计算精度问题导致 Julia 算出来的长度比 MATALB 长度少 1。
例如运算结果为: 7678.99999
1、Julia 语言的逻辑是忽略后面的 0.9999
2、Matlab 语言的逻辑是把后面的 0.9999 当作 7679 处理
解决方法
1.可以先减再除,例如:

2.或者说用有理数存

注意: 用// 会自动通分,因此只建议在(:)用/例如:

所属专栏:Julia语言
产品信息:Syslab科学计算环境