我想知道在R中是否可以使用比.Machine$double.xmax
(~1.79e308
)更大的整数。 我认为通过在R中使用例如Rmpfr
或gmp
库,您可以分配任何大小的值,直到您系统上RAM的限制。 我认为这比.Machine$double.xmax
大,但显然不是这样。
> require( gmp )
> as.bigz( .Machine$double.xmax )
Big Integer ('bigz') :
[1] 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368
> as.bigz( 1e309 )
Big Integer ('bigz') :
[1] NA
>
有没有人能解释一下为什么使用64位内存寻址的计算机无法存储大于1.79e308的值?抱歉,我没有计算机科学背景,但我正在努力学习。
谢谢。
?as.bigz
的注释部分。 - joranas.bigz(10)^309
。事实上,你可以这样做:"%e%" <- function(x,y) as.bigz(x) * 10^as.bigz(y); 1%e%309
- Ben Bolkerx
,所以如果你想要 1.5e309,你需要类似15%e%308
的东西。 - Ben Bolkere <- bc(10); 1.5 * e ^ 309
。 - G. Grothendieckbc
,所以我会去了解一下。谢谢。 - Simon O'Hanlon