は、以下の単純な分割を考慮してください制御分割精度
A=8.868;
A/0.1
ans =
88.679999999999993
これは、浮動小数点精度に起因し、小さなミスが生じます。これが起こらないようにする方法はありますか?基本的に私がやっているのは、MATLABの許容数字の最大数に近づかないうちに、カンマを1ポジションだけシフトさせることです。彼らは唯一のゼロであるよう
A/0.1
ans =
88.68
後続ゼロ限り、無懸念される、と14桁目かそこらで、いくつかの番号が含まれていない:
私はその結果を取得したいと思います。象徴的な数学を使用して
R = (randi([8659 49847],[1e3 1]))/1e3;
xmin = min(R);
el = 0.1;
step = 1/el;
tmp1=xmin/el;
tmp2=round(tmp1);
tmp3=round(tmp2*el,3);
tmp3 =
8.699999999999999
ちょっと好奇心から:なぜそのように?なぜ10倍にならないの? –
@AnderBiguriこれは、私の場合、グリッドサイズ(センチメートル)です。 0.25,0.12、または顧客が望むものであれば何でもよい。 – Adriaan
@AnderBiguri 'A * 10'もこの場合不正確です... – Dan