here で説明されているように、浮動小数点値の有限精度によるエラーなしで、ラウンドハーフを偶数ルールに適用し、正しい結果を達成する関数でRmpfr
ライブラリを使用しようとしています。round()
これまでのところ、これは私が達成したことです:
library(Rmpfr)
x <- c(1.225, 1.2225, 1.22225, 1.222225)
n <- c(2, 3, 4, 5)
round2 <- function(x, n){
sprintf(paste("%#.", n, "f", sep=""), round(mpfr(as.character(x), 200), n))
}
mapply(round2, x, n)
#[1] "1.22" "1.222" "1.2222" "1.22222"
しかし、場合によっては、望ましい結果が得られません。
round2(1.152, 2)# Should be 1.15
#[1] "1.16"
関数でRmpfr
ドキュメントを読むと、次のように書かれています:roundMpfr()
mpfr クラス グループ メソッド Math2 は、10 進数に丸める round(x, digits) のメソッドを実装します。
しかし、私はそれを使用する方法を理解できません。
を使用して望ましいラウンド結果を得るにはどうすればよいRmpfr
ですか?