as.character()和paste()是否受到给定数字值的大小的限制?

时间:2014-11-12 21:10:37

标签: r

我遇到了R函数as.character()paste()的一些问题:他们没有回馈他们被喂的东西......

as.character(1415584236544311111)
## [1] "1415584236544311040"

paste(1415584236544311111)
## [1] "1415584236544311040"

将我的号码粘贴为字符串可能是什么问题或解决方法?

更新

我发现使用bit64库允许我使用函数as.integer64()保留我需要的额外数字。

1 个答案:

答案 0 :(得分:1)

请记住,根据您运行的硬件,数字会以固定的字节数存储。你能说明通过正常的算术运算可以正确处理你的大整数吗?如果没有,你可能试图将一个数字存储到大的存储在你的R install的整数字节数中。你看到的数字恰好适合。

您可以尝试将该数字存储为双精度,这在技术上不太精确,但可以用科学计数法存储更大的数字。

修改

考虑long/bigint/decimal equivalent datatype in R中列出包含任意精度包的解决方案的答案。