微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何调整整数的数值精度

如何解决如何调整整数的数值精度

我正在尝试在 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 更方便......

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。