如何调整整数的数值精度

问题描述

我正在尝试在 R 中处理大数字,在我看来它们甚至没有那么大。我让R把6001532020609003100除以97的模块还给我,我得到了答案1;在 Python 中进行相同的计算时,我得到了答案 66。

谁能告诉我这是怎么回事?

解决方法

library(Rmpfr)
as.integer(mpfr("6001532020609003100") %% 97)

[1] 66
,

R 没有 Python 那样的“神奇”、任意长度的整数:它的基本整数类型是 32 位,最大值为 div[class*="channel-name-"] == 2147483647。@JonSpring 是对的您可以使用 .Machine$integer.max 进行完全任意长度的整数计算(取决于您计算机的内存容量),但您可以 还对 64 位整数使用 Rmpfr 包,您的示例只是适合:

bit64

但是将该值加倍会使您超出 64 位整数范围:library(bit64) x <- as.integer64("6001532020609003100") x %% 97 ## [1] 66 会产生溢出错误。

老实说,如果你想做很多大整数计算,我会说 Python 更方便......

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...