计算结果不正确(可能溢出)

时间:2015-12-04 13:37:37

标签: r

在R中执行(-954437177*4294895519) %% 4294967296会提供1908882432而不是1908882329。 R中有没有办法计算正确的值?

1 个答案:

答案 0 :(得分:2)

使用支持更大整数的包(例如gmp):

library(gmp)
> mod.bigz(-as.bigz(954437177)*as.bigz(4294895519), as.bigz(4294967296))
Big Integer ('bigz') :
[1] 1908882329