MATLAB精度导致处理浮点数时出现问题

时间:2019-01-09 03:44:41

标签: matlab

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

a = 1+1e-18
a = 1

a会四舍五入为1,但是我希望保留所有小数位以进行计算,以使它不会四舍五入。在执行计算时,如何使MATLAB保留所有小数位。

1 个答案:

答案 0 :(得分:0)

MATLAB本身不支持有理数据类型或扩展的浮点数超出double。诸如ratrats之类的功能乍看起来很有前途,但没有提供开箱即用地处理结果的功能。

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