Matlab舍入计算误差

时间:2017-12-05 23:46:14

标签: matlab rounding

在Matlab 2014b下,制作时:

round((0.1:0.2:1)/0.2)

我获得:

1 2 3 3 5

而不是

1 2 3 4 5

有没有办法解决这种奇怪的计算?为什么会这样?为什么这么奇怪?这会重复其他值,而不仅仅是n=0.2

编辑:我检查了副本但是,在使用ceil时方案发生了变化,因此浮点阈值不在半整数(0.5,1.5,2.5)中,而是在整数(1.0,2.0,3.0)中)?如果我使用其他表示法,例如single,该怎么办?还是其他任何更可预测的?

1 个答案:

答案 0 :(得分:1)

由于问题重新开始,我简要提到添加1.3 + 0.2浮点数可能会导致2.49999999999或2.5000000001等。round将根据浮点错误执行操作。