3

私の友人の1人がMatlabで次のように書いていますが、出力は少し奇妙です。

for p=0.01:0.01:0.1
100*p 
end

出力は次のとおりです。

1
2
3
4 
5
6.000000000000001
6.999999999999999
8
9
10

なぜわずかなエラーがあるのか​​知りたいのですが?これは、一般的な場合の精度もこの場合と同じくらい低いことを意味しますか?

編集:

数値を比較しました-7==6.999999999999999そして出力はでした0。したがって、Matlabはそれ自体と矛盾します!

4

3 に答える 3

8

問題は、2 進浮動小数点では 0.01 を正確に表現できないことです。0.07もできません。

于 2012-05-22T23:08:05.233 に答える
7

浮動小数点の精度の「問題」のように見えます:http ://www.lahey.com/float.htm

于 2012-05-22T22:34:09.613 に答える