【问题标题】:Calculations with integers with more than 16 digits超过 16 位整数的计算
【发布时间】:2018-09-02 04:40:58
【问题描述】:

我有两个大整数。两者都有超过 16 位(确切地说是 20 位),我知道由于双精度浮点运算,我在使用这些数字进行计算甚至将它们存储在变量中(独立于编程语言)方面存在限制。

但是,我认为gmp 库可能应该处理它们,但不幸的是它没有。可以计算更大的整数,但用于计算的输入不应超过 16 位。

示例如下:

library(gmp)
x <- as.bigz(99899999999996937503)
y <- as.bigz(99899999999996936542)
z <- sub.bigz(x,y)

在这两种情况下,它们都存储为99899999999996936192,而z等于0

是否有任何库接受超过 16 位的整数作为输入?

【问题讨论】:

    标签: r gmp


    【解决方案1】:

    正如as.bigz 的帮助中所解释的,您需要在这些大整数周围加上引号(即作为字符输入),否则 R 会将它们转换为普通整数,然后再传递给 as.bigz...

    library(gmp)
    x <- as.bigz("99899999999996937503")
    y <- as.bigz("99899999999996936542")
    z <- sub.bigz(x,y)
    
    z
    Big Integer ('bigz') :
    [1] 961
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 2021-10-25
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多