【发布时间】:2013-03-26 22:57:05
【问题描述】:
如何在 matlab 中将小数四舍五入到最接近的 0.5?例如。我希望将 16.625 四舍五入为 16.5
【问题讨论】:
如何在 matlab 中将小数四舍五入到最接近的 0.5?例如。我希望将 16.625 四舍五入为 16.5
【问题讨论】:
【讨论】:
如果您采用乘以 2 - 舍入 - 除以 2 的方式,您可能会遇到一些(非常小的)数字错误。您可以使用mod 来避免这种情况:
x = 16.625;
dist = mod(x, 0.5);
floorVal = x - dist;
newVal = floorVal;
if dist >= 0.25, newVal = newVal + 0.5; end
你可以用更少的步骤来完成,但在这里我把它分解了,这样你就可以看到每个步骤的作用。
【讨论】:
a=16.625;
b=floor(a);
if abs(a-b-0.5) <= 0.25
a=b+.5;
else
if a-b-0.5 < 0
a=b;
else
a=b+1;
end
end
【讨论】: