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
)。