为什么 nchar return R 中大数值变量的错误值?

Why does nchar return the wrong values for large numeric variables in R?

根据我的理解,输入应转换为字符而不指定

"x = ...character vector, or a vector to be coerced to a character vector"

nchar(2015122514204000000)
# 18 
nchar("2015122514204000000")
# 19 

# Replacing the end zeroes with 111111
nchar(2015122514204111111)
# 19

它正在执行以下操作:

as.character(2015122514204000000)
"2.015122514204e+18"

nchar("2.015122514204e+18")

是 18。

尝试例如options(scipen=999)防止科学记数,而nchar(2015122514204000000)会return19。希望这对您有所帮助!

我相信这就是正在发生的事情:

> as.character(2015122514204000000)
[1] "2.015122514204e+18"
> nchar(as.character(2015122514204000000))
[1] 18