BigInts #

对于大整数的计算,math.js 支持内置的 bigint 数据类型。

用法 #

可以通过在 number 后添加后缀 n,使用 BigInt 构造函数,或者使用 util 函数 math.bigint 来创建 bigint。

42n
BigInt('42')
math.bigint('42')

大多数函数可以根据输入类型确定输出类型:输入为 number 将返回 number,输入为 bigint 将返回 bigint。无法根据输入确定输出类型的函数(例如 math.evaluate)使用默认数字类型 number,这可以在实例化 math.js 时进行配置。要将 bigint 配置为默认使用,而不是 numbers,请像这样配置 math.js:

math.config({
  number: 'bigint'
})

// use math
math.evaluate('70000000000000000123')  // bigint 70000000000000000123n

支持 #

math.js 中的所有基本算术函数都支持 bigint。由于 bigint 只能存储整数值,因此它不适用于例如三角函数。当在不支持 bigint 的函数中使用 bigint 时,例如 sqrt,它会将 bigint 转换为常规 number,然后执行函数。

math.sin(2n) // number 0.9092974268256817

转换 #

有一些实用函数可以将 bigint 转换为 numberBigNumber

// convert a number to bigint or BigNumber
math.bigint(42)                    // bigint, 42n
math.bignumber(42)                 // BigNumber, 42

// convert a bigint to a number or BigNumber
math.number(42n)                   // number, 42
math.bignumber(42n)                // BigNumber, 42

// losing digits when converting to number
math.number(70000000000000000123n) // number, 7000000000000000000
Fork me on GitHub