javascript - 我什么时候应该使用 bignumber 库?
问题描述
我试图了解何时使用 bignumber 库。
问题1)。众所周知,JavaScript 对 Number 类型的上限是 2^53,但它还有另一种类型 BigInt,它没有限制。为什么我们要使用 bignumber 库?是因为它也适用于小数吗?还有其他原因吗?
问题 2)假设我有一个x = new BigNumber(10000000000000000000);
,现在我想将它乘以 30。我是否也应该先将 30 转换为BigNumber
然后相乘,或者这样可以吗:30 * x
?似乎我没有将 30 转换为BigNumber
,它仍然可以正常工作。我什么时候应该mul
从 bignumber 库中使用?
解决方案
为什么我们要使用 bignumber 库?是因为它也适用于小数吗?
是的。大数字库通常适用于任意精度的浮点数,而大int库(或内置数据类型)只能处理整数。
此外,还有很多实现大整数数学的库,这些库BigInt
在 JavaScript 原生支持之前就已经存在,这是该语言的一个相当新的补充。这也意味着在旧浏览器中需要一个库。
现在我想将它乘以 30。我是否也应该先将 30 转换为 bigNumber?
不,这通常不是必需的(但当然取决于库)。
这样可以吗:
30 * x
?
不,那不行。如果您使用的是 bignumer 库,则需要使用它的方法(如x.multiply(30)
),而不是*
仅适用于 JavaScript 内置数据类型的运算符。
推荐阅读
- java - 计算歌曲评分的数组算法中的匹配项
- java - JACL:有没有办法删除某个目录文件夹中的所有文件?
- amazon-ec2 - 即使实例和系统健康检查正常,环境健康也已设置为 RED
- ios - 如何在 iOS 中格式化 mailgun api?
- ios - 如何修复“命令 /usr/bin/codesign 失败,退出代码 1”错误
- matlab - 为什么我在函数定义之后而不是之前调用函数(在函数内定义)的输出时会出现错误?
- c - C 函数 shuffle、read_vector、display_vector
- excel - 在同一个单元格中组合不同的公式/函数
- spring-boot - ObjectMapper 不一致地映射 BigDecimal
- c# - 为什么来自 C# 的 Url 编码在 Codeigniter 控制器中找不到对象?