R如何使用bigints?

JCW*_*ong 1 r bigint

我有一个18位的int,R不理解,它返回的值与我输入的值不同

options(digits = 22)
> as.numeric(123456789123456789)
[1] 123456789123456784
Run Code Online (Sandbox Code Playgroud)

当使用具有integer64类的bit64时也是如此

> as.integer64(123456789123456789)
integer64
[1] 123456789123456784
Run Code Online (Sandbox Code Playgroud)

是否有其他包可以正确解释这个数字?

Rol*_*and 5

使用as.integer64("123456789123456789").123456789123456789是一个double(避免整数溢出),因此受到浮点不精确的影响.as.integer64(123456789123456789)从这个double创建一个integer64.