我输入abs(sin(pi))
了MATLAB。我希望它能给我 pi 的绝对值,希望通过“abs”(绝对值)来减轻自然舍入误差。我仍然得到一个舍入错误。我应该怎么做,为什么我错了?
问问题
364 次
1 回答
1
浮点数总是会给你这样的问题。这就是为什么通常写成:
if (x - TestValue < 0.000001)
代替
if (x == TestValue)
我建议尝试使用以下方法将值四舍五入到小数位或两位小数:
x = floor(x * 1e15) / 1e15;
将 x 向下舍入到最接近的 1e15。您也可以使用round
或ceil
。本文提供了有关舍入的类似策略的更多信息。
于 2013-01-20T22:34:17.697 回答