-2

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

誰かが私に説明できますか、なぜRFALSEは次の場合に答えますか?

(1-0.9)>=0.1

TRUEそのような比較をするにはどうすればよいですか?

4

3 に答える 3

5

これは古典的なRFAQ7.31です。あなたが必要ですall.equal

于 2012-11-11T11:17:51.803 に答える
5

これは浮動小数点の精度と関係があります。本質的には無限の量のフローティングポイントがあり、コンピュータでそれらを表現することは離散的にしか行うことができず、したがって精度が制限されます。この制限された精度を考慮に入れるには、を使用all.equalして比較を行います。@RomainFracoisが言ったように、これはRで非常によく聞かれる質問です。

于 2012-11-11T11:22:46.490 に答える
3

独自の二項演算子を作成して、目的の処理を実行し、それらを.Rprofileに格納できます。

`%>=%` <- function(x, y) all.equal(x, y) | x > y
`%<=%` <- function(x, y) all.equal(x, y) | x < y

c(1-.9)>=.1
c(1-.9)%>=% .1
于 2012-11-11T14:01:17.957 に答える