来自 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(`/`)
我试图在小数点后打印更多数字。所以用了"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(`/`)