Javascript 了解bignumber.js库的局限性

Javascript 了解bignumber.js库的局限性,javascript,Javascript,我最近发现了bignumber.js库: 资料来源: 我不确定的是,操作的数量是否有限制?我一直在查阅文档,试图在网上找到资料来源。但是到目前为止还没有。我还没有使用过bignumber.js,只是对 已经向我展示了它似乎是可配置的 BigNumber.config({ RANGE: 500 }) BigNumber.config().RANGE // [ -500, 500 ] new BigNumber('9.999e499') // '9.999e+499' new BigNu

我最近发现了
bignumber.js
库:

资料来源:


我不确定的是,操作的数量是否有限制?我一直在查阅文档,试图在网上找到资料来源。但是到目前为止还没有。我还没有使用过
bignumber.js
,只是对 已经向我展示了它似乎是可配置的

BigNumber.config({ RANGE: 500 })
BigNumber.config().RANGE     // [ -500, 500 ]
new BigNumber('9.999e499')   // '9.999e+499'
new BigNumber('1e500')       // 'Infinity'
new BigNumber('1e-499')      // '1e-499'
new BigNumber('1e-500')      // '0'
如果运行此命令:

console.log(new BigNumber('123456789012345678901234567890').c);
您可以看到,数字存储为数组,最多14位

所以实际的限制是数组的最大长度乘以14。这在很大程度上取决于你的机器,但假设你有史以来最好的机器,比如说,它的大小是,因此,理论上,你可以使用该库存储一个带有
14*(2^32-1)
位数的数字,这类似于:

console.log(new BigNumber(2).pow(32).sub(1).mul(14).toString());

在回购协议中,哪一个是大约
60129542130
位数

为什么不询问?打开问题进行澄清或直接与维护人员联系并不少见。也就是说,(没有实际查看)我猜它可能会将数字存储为字符串,给你一个大得离谱的最大值(对于给定的基,
b^maxint
)。