我有两个大整数。两者都有超过16位数字(准确地说是20位),我知道由于双精度浮点运算,我在使用这些数字进行计算甚至将它们存储在变量中时都有局限性(独立于编程语言)。
但是,我可能会gmp
库应该处理它们,但不幸的是它没有。可以计算更大的整数,但计算的使用输入不应超过16位。
以下是示例:
library(gmp)
x <- as.bigz(99899999999996937503)
y <- as.bigz(99899999999996936542)
z <- sub.bigz(x,y)
在这两种情况下,它们都存储为99899999999996936192
,z
等于0
。
是否有任何库接受超过16位数的整数作为输入?
答案 0 :(得分:4)
正如as.bigz
的帮助中所解释的那样,你需要在这些大整数(即输入为字符)周围加上引号,否则R将它们转换为普通整数,然后传递给as.bigz
... < / p>
library(gmp)
x <- as.bigz("99899999999996937503")
y <- as.bigz("99899999999996936542")
z <- sub.bigz(x,y)
z
Big Integer ('bigz') :
[1] 961