を作るとき:Matlabの丸め演算エラーMatlabの2014bの下
round((0.1:0.2:1)/0.2)
は私が取得:
1 2 3 3 5
代わりに、このような奇妙な計算を修正する方法はあり
1 2 3 4 5
の?なぜこれが起こるのですか?なぜそんなに変だ?これは、
n=0.2
だけでなく、他の値に対しても繰り返されます。
EDIT:ceil
を使用するとシナリオが変更されるため、浮動小数点しきい値は半整数(0.5、1.5、2.5)ではなく整数(1.0,2.0,3.0)になりますか? single
のような表現を使用するとどうなりますか?それとも他の予測可能なものか?
'round((0.1:0.2 + eps:1)./ 0.2)' – bla
浮動小数点精度を利用する... – bla
['ceil'](https://www.mathworks.com) /help/matlab/ref/ceil.html)を 'round'の代わりに使用します。 – gnovice