R中Rmpfr的科学记数法

时间:2018-01-28 07:17:50

标签: r scientific-notation mpfr

我正在根据R中Rmpfr的示例代码测试一些计算。

测试如下:

ns <- mpfr(1:24, 120) ; factorial(ns)

但是,在我的输出中,结果为:

 [1]                      1e0                      2e0                      6e0
 [4]                    2.4e1                    1.2e2                    7.2e2
 [7]                   5.04e3                  4.032e4                 3.6288e5
[10]                 3.6288e6                3.99168e7               4.790016e8
[13]              6.2270208e9            8.71782912e10           1.307674368e12
[16]          2.0922789888e13         3.55687428096e14        6.402373705728e15
[19]      1.21645100408832e17      2.43290200817664e18     5.109094217170944e19
[22]   1.12400072777760768e21  2.585201673888497664e22 6.2044840173323943936e23

在示例输出中,科学记数法被删除为:

[1] 1 2 
[3] 6 24 
[5] 120 720 
[7] 5040 40320 
[9] 362880 3628800 
[11] 39916800 479001600 
[13] 6227020800 87178291200 
[15] 1307674368000 20922789888000 
[17] 355687428096000 6402373705728000 
[19] 121645100408832000 2432902008176640000 
[21] 51090942171709440000 1124000727777607680000 
[23] 25852016738884976640000 620448401733239439360000 

在这种情况下,如何关闭科学记数法?

我试过了:

  • options(scipen=999)
  • mpfr(1:24, 120,scientific=FALSE)

但他们都没有工作。

1 个答案:

答案 0 :(得分:2)

使用scipen=0

   library(Rmpfr)
    options(scipen = 999)
    ns <- mpfr(1:24, 120) ; factorial(ns)
    # 24 'mpfr' numbers of precision  120   bits 
    # [1]                     1e0                     2e0                     6e0
    # [4]                    2.e1                    1.e2                    7.e2
    # [7]                   5.0e3                  4.03e4                 3.628e5
    # [10]                 3.628e6                3.9916e7               4.79001e8
    # [13]              6.227020e9            8.7178291e10           1.30767436e12
    # [16]          2.092278988e13         3.5568742809e14        6.40237370572e15
    # [19]      1.2164510040883e17      2.4329020081766e18     5.10909421717094e19
    # [22]   1.1240007277776076e21  2.58520167388849766e22 6.204484017332394393e23

    options(scipen = 0)
    ns <- mpfr(1:24, 120) ; factorial(ns)
    # 24 'mpfr' numbers of precision  120   bits 
    # [1]                        1                        2                        6
    # [4]                       24                      120                      720
    # [7]                     5040                    40320                   362880
    # [10]                  3628800                 39916800                479001600
    # [13]               6227020800              87178291200            1307674368000
    # [16]           20922789888000          355687428096000         6402373705728000
    # [19]       121645100408832000      2432902008176640000     51090942171709440000
    # [22]   1124000727777607680000  25852016738884976640000 620448401733239439360000