【问题标题】:MATLAB precision causing problems when dealing with floating point numbersMATLAB精度在处理浮点数时导致问题
【发布时间】:2019-01-09 11:55:20
【问题描述】:

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

a = 1+1e-18
a = 1

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

【问题讨论】:

标签: matlab


【解决方案1】:

MATLAB 本身不支持有理数数据类型或超出double 的扩展浮点数。 ratrats 等函数起初看起来很有希望,但不提供开箱即用的功能。

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

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多