如何使用 gmp 包显示 bigz/bigq 数字中的所有数字

问题描述 投票:0回答:1

如何打印 1/31 的所有数字?

a = gmp::as.bigz(1) 
b = gmp::as.bigz(31)
print(a/b)

R.4.3.1 > print(a/b)
Big Rational ('bigq') :
[1] 1/31

我期待类似的事情:

"0.032258064516129032258064516129032258064516129032258064516129..."
r gmp
1个回答
1
投票

显然你不能打印无限重复小数的所有数字...

gmp
不支持任意精度浮点数,只支持整数和有理数。这是使用
Rmpfr
获取十进制表示的一种方法...(您可以选择相当大的
precBits
以获得更多数字,尽管出于某种原因,事情似乎在 1000 到 10000 之间达到最大值...)

library(Rmpfr)
mpfr(a/b, precBits = 1000)
1 'mpfr' number of precision  1000   bits 
[1] 0.03225806451612903225806451612903225806451612903225806
45161290322580645161290322580645161290322580645161290322580
64516129032258064516129032258064516129032258064516129032258
06451612903225806451612903225806451612903225806451612903225
80645161290322580645161290322580645161290322580645161290322
580645161290351
© www.soinside.com 2019 - 2024. All rights reserved.