划分两个数字

时间:2017-02-21 13:02:24

标签: matlab division rounding-error

我在运行单元测试时偶然发现了一些奇怪的MATLAB行为。我收到一些"不正确的"或"不高兴"计算两个数据点的百分比变化时的结果。为了便于说明,请查看以下示例。

test1 = 101/100-1             % test1 = 0.01
tf1 = isequal(test1, 0.01)    % tf1 = false

在我的计算机上tf1false,这显然是错误的,因为test1应该完全等于0.01。首先,我认为这可能与分裂有关,导致了一个"舍入"错误。 但是,如果您首先避免使用减法(-1),则tf会变为true

test2 = 101/100               % test2 = 1.01
tf2 = isequal(test2, 1.01)    % tf2 = true

现在,我有点困惑,我想知道发生了什么?

0 个答案:

没有答案