在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
,该怎么办?还是其他任何更可预测的?
答案 0 :(得分:1)
由于问题重新开始,我简要提到添加1.3 + 0.2浮点数可能会导致2.49999999999或2.5000000001等。round
将根据浮点错误执行操作。