我试图在十进制后打印更多数字。所以用过" mpfr"功能。但是,为什么我得到这个结果?
> mpfr(1/5, 120)
1 'mpfr' number of precision 120 bits
[1] 0.20000000000000001110223024625156540424
为什么结果打印" 1110223024625156540424"在0之后?
答案 0 :(得分:1)
因为你给了它一个不是你想象的数字。该部门首先作为双精度操作完成。
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(`/`)