R的精度为double

时间:2015-09-07 18:12:57

标签: r

我必须计算R中两个长变量之间的差异。 最初,它被存储为文本。但是当我尝试将它们转换为数字或双倍来计算差异时,R无法识别出差异为1

testVariable1 = as.numeric("233203300000000001")
testVariable2 = as.numeric("233203300000000002")
testVariable2 - testVariable1

结果:

  

[1] 0

我该怎么做才能解决这个问题?

提前致谢!

2 个答案:

答案 0 :(得分:3)

library(gmp)

as.bigz("233203300000000002")-as.bigz("233203300000000001")


Big Integer ('bigz') :
[1] 1

答案 1 :(得分:2)

您可以尝试使用bit64包:

library(bit64)
##
testVariable1 <- as.integer64("233203300000000001")
testVariable2 <- as.integer64("233203300000000002")
##
R> testVariable2 - testVariable1
#integer64
#[1] 1
R> as.numeric(testVariable2 - testVariable1)
#[1] 1