3

重複の可能性:
これらの数値が等しくないのはなぜですか?

Rのこのバグに気づきました。0.6の表現方法だと思いますが、何が起こっているのか正確に知っている人はいますか?

Rによると:

0.3 %% 0.2 = 0.1
0.4 %% 0.2 = 0
0.5 %% 0.2 = 0.1
**0.6 %% 0.2 = 0.2**
0.7 %% 0.2 = 0.1
0.8 %% 0.2 = 0

どうしたの?

4

1 に答える 1

6

@joshua Ulrich のコメントに加えて

から?'%%'

%% および x %/% y は、1 %/% 0.2 などの非整数 y に使用できますが、結果は表現エラーの影響を受けるため、プラットフォームに依存する場合があります。0.2 の IEC 60059 表現は 0.2 よりわずかに大きい 2 進数の分数であるため、1 %/% 0.2 に対する答えは 4 になるはずですが、ほとんどのプラットフォームでは 5 になります。

これを取得する理由にも似ています

> .1 + .1 + .1 == .3
[1] FALSE

@Ben Bokerが指摘したように、次のようなものを使用したい場合があります

> 3:8 %% 2 / 10
[1] 0.1 0.0 0.1 0.0 0.1 0.0
于 2012-11-28T21:48:49.157 に答える