0

我输入abs(sin(pi))了MATLAB。我希望它能给我 pi 的绝对值,希望通过“abs”(绝对值)来减轻自然舍入误差。我仍然得到一个舍入错误。我应该怎么做,为什么我错了?

4

1 回答 1

1

浮点数总是会给你这样的问题。这就是为什么通常写成:

if (x - TestValue < 0.000001)

代替

if (x == TestValue)

我建议尝试使用以下方法将值四舍五入到小数位或两位小数:

x = floor(x * 1e15) / 1e15;

将 x 向下舍入到最接近的 1e15。您也可以使用roundceil本文提供了有关舍入的类似策略的更多信息。

于 2013-01-20T22:34:17.697 回答