我需要做一些高精度的计算,所以我在网上查找并找到了Rmpf包。但是,它抛出了一些非常明显的错误。当我在控制台中输入以下内容时
10^(15)*(mpfr((5 + 10^(-15)), 200)- mpfr(5, 200))
它给
1 'mpfr' number of precision 200 bits
[1] 0.88817841970012523233890533447265625
>
然而,它应该给出 1。 我在使用软件包时犯了错误吗?
不要使用mpfr((5 + 10^(-15)), 200)
. 使用mpfr(5,200) + mpfr(10^(-15), 200)
,因为5+10^(-15)
是使用 R 的双精度算术计算的。
然后
10^15*(mpfr(5,200)+mpfr(10^(-15),200) - mpfr(5, 200))
会给
1 'mpfr' number of precision 200 bits
[1] 1.000000000000000077705399876661079238307185601195015145492562