首页 > 解决方案 > MATLAB 精度在处理浮点数时导致问题

问题描述

我正在执行矩阵乘法运算,其中有浮点数。由于 MATLAB 的精度,我得到了不正确的输出。例如,在下面

a = 1+1e-18
a = 1

a 舍入为 1,但我希望保留所有小数位以供我计算,以使其不舍入为 1。如何让 MATLAB 在执行计算时保留所有小数位。

标签: matlab

解决方案


MATLAB 本身不支持有理数据类型或超出double. rat和之类的函数rats起初看起来很有希望,但不提供开箱即用的结果。

您可以通过分别保留数字的分子和分母来获得一些里程。如果您随后实现分数所需的运算符,您的最终结果将具有更高的精度。


推荐阅读