来自 Rmpfr 包的 mpfr 函数

mpfr function from Rmpfr package

我试图在小数点后打印更多数字。所以用了"mpfr"函数。但是,为什么我会得到这个结果?

> mpfr(1/5, 120)
1 'mpfr' number of precision  120   bits 
[1] 0.20000000000000001110223024625156540424

为什么结果在0后面打印“1110223024625156540424”?

因为你给它的数字不是你想象的那样。除法首先作为双精度运算完成。

1/Rmpfr::mpfr(5, 80)
1 'mpfr' number of precision  80   bits 
[1] 2.0000000000000000000000004e-1

> 1/Rmpfr::mpfr(5, 120)
1 'mpfr' number of precision  120   bits 
[1] 2.0000000000000000000000000000000000004e-1

我的替代方法生成了 5 的更高精度版本,然后由 / 的 mpfr 版本(除法函数)处理。

看看你得到了什么:

methods(`/`)