我什么时候应该使用 bignumber 库?

When should I use the bignumber library?

我正在尝试了解何时使用 bignumber 库。

问题1)。我们知道,JavaScript 对 Number 类型有一个上限,即 2^53,但它还有另一种类型 BigInt,它没有上限。我们为什么要使用 bignumber 库?是因为它也适用于小数吗?还有其他原因吗?

问题 2) 假设我有一个 x = new BigNumber(10000000000000000000);,现在我想将其乘以 30。我是否也应该先将 30 转换为 BigNumber 然后再乘以,或者这样可以吗:30 * x?好像我没有将 30 转换为 BigNumber 并且它仍然可以正常工作。我什么时候应该使用 bignumber 库中的 mul

Why would we use bignumber library? is it because it also works with decimals?

是的。 bignumber 库通常适用于任意精度的浮点数,而 bigint 库(或内置数据类型)只能处理整数。
此外,有相当多的库实现了大整数数学运算,这些库在 JavaScript 中 BigInt 的本地支持之前就已存在,这是该语言最近才添加的。这也意味着在旧版浏览器中需要一个库。

Now I want to multiply this by 30. Should I also transform 30 to bigNumber first?

不,这通常不是必需的(但当然取决于图书馆)。

would this would be okay: 30 * x?

不,那不行。如果您使用的是大数字库,则需要使用其方法(如 x.multiply(30)),而不是仅适用于 JavaScript 内置数据类型的 * 运算符。