R 从字符转换为数字后丢失信息

R 从字符转换为数字后丢失信息,r,character,type-conversion,numeric,R,Character,Type Conversion,Numeric,我在将长字符(19位)转换为数字时遇到了一个问题。转换后,它们以不可预测的方式进行转换。为什么数字在字符中的第10位之后发生变化 options(scipen=100000, digits=22) a = '9440006300200000000' class(a) [1] "character" nchar(a) [1] 19 a_numeric = as.numeric(a) a_numeric [1] 9440006300199999488 class(a_numeric) [1]

我在将长字符(19位)转换为数字时遇到了一个问题。转换后,它们以不可预测的方式进行转换。为什么数字在字符中的第10位之后发生变化

options(scipen=100000, digits=22)
a = '9440006300200000000'
class(a) 
[1] "character"
nchar(a) 
[1] 19
a_numeric = as.numeric(a)
a_numeric 
[1] 9440006300199999488
class(a_numeric)
[1] "numeric"
nchar(a_numeric)
[1] 19

如果需要,可以使用bigint
library(gmp)a_numeric=as.bigz(a)
感谢Batanichek,as.bigz解决了这个问题。