了解bignumber.js库的局限性

时间:2017-07-07 21:18:13

标签: javascript

我最近找到了bignumber.js库:

来源: https://github.com/MikeMcl/bignumber.js

我不确定的是,操作次数有多大?我一直在查看文档,试图在线查找源代码。但到目前为止还没有。

2 个答案:

答案 0 :(得分:1)

我还没有与bignumber.js合作过,但只是瞥了一眼 http://mikemcl.github.io/bignumber.js/#range告诉我,它似乎是可配置的。

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'

答案 1 :(得分:1)

如果你运行:

console.log(new BigNumber('123456789012345678901234567890').c);

您可以看到数字存储为数组,最多14位

所以实际的限制是你可以为数组增加的最大长度乘以14.这在很大程度上取决于你的机器,但假设你拥有最好的机器,ECMA-262 v6.0说{{3} },这是the limit is for the length of an array is 2^32-1的大小,所以,从理论上讲,你可以使用该库存储一个14 * (2^32-1)位的数字,这类似于:

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

60129542130位数

附近的内容