1

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

Gnu Rで:

which(seq(0, 1600, 0.05) == 0.3) returns
integer(0)

でも、これ:

which(round(seq(0, 1600, 0.05),2) == 0.3) returns
[1] 7

関数はどうなりseq()ますか?

4

1 に答える 1

5

それは本質的に、フロート間の比較に関する R FAQ 7.31 であり、有名な「すべてのコンピューター科学者が浮動小数点数について知っておくべきこと」につながります。

簡単に言えば、identical()浮動小数点型では完全な等価性が得られないため、他のヘルパー関数を使用して小さな値 \epsilon と比較します。

于 2012-11-15T14:03:28.133 に答える