大整数的乘法
我尝试乘以 111111111*111111111
,它与 111111111^2
相同,但得到了错误的结果。它应该给出 12345678987654321
,但它却给出了舍入错误。我是否需要对长数字使用一些特殊的变量类型,或者这是 R 的一个错误吗?
I tried to multiply 111111111*111111111
, which is the same as 111111111^2
, and got incorrect results. It should give 12345678987654321
, but instead it gives a rounding error. Do I need to use some special variable type for long numbers or is this a bug with R?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
“gmp”包将允许您对那么大的值进行操作。
The 'gmp' package will allow you to do operations on values that large though.
这并不是 R 的具体限制,而是双精度浮点运算的限制。标准双精度浮点数的精度约为 16 位小数。您的总和的答案需要 17。R 没有更高精度的变量类型,但许多其他语言也没有。
It's not a limitation of R specifically, it's a limitation of double precision floating-point arithmetic. A standard double-precision floating-point number has around 16 decimal digits of accuracy. The answer to your sum requires 17. R does not have a variable type with greater precision, but neither do many other languages.
另外,来自 Romain Francois 的新包 int64 。
Also, new package int64 from Romain Francois.