abs(sin(pi))用于减轻系统舍入误差

时间:2013-01-20 22:08:13

标签: matlab rounding

我在MATLAB中键入abs(sin(pi))。我希望它给我pi的绝对值,希望用'abs'(绝对值)来减轻自然舍入误差。我仍然得到一个舍入错误。我应该怎么做,为什么我错了?

1 个答案:

答案 0 :(得分:1)

浮点数总是会给你带来这样的问题。这就是写作的常见原因:

if (x - TestValue < 0.000001)

而不是

if (x == TestValue)

我建议尝试使用以下内容将值向下舍入小数位:

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

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