统计时间取自 2024/10/12
以下三个库均由mikemcl 大神/团队提供,所以不存在好坏,需求区别使用场景。
库名/特点 | big.js | bignumber.js | decimal.js |
---|---|---|---|
npm周下载量 | 16,625,952 | 10,686,819 | 15,641,683 |
库大小 | 58.7 kb | 351 kb | 283 kb |
近期是否更新 | 一个月 | 一年内 | 两年内 |
基数值存储 | 最小 | 大 | 大 |
基数值 | 支持最小 | 十六进制的前缀,例如'0x' | 处理二进制指数表示法中的二进制、八进制和十六进制值,例如 C 编程语言中的值 |
Number 类型方法 | toExponential 、 toFixed和toPrecision | toExponential 、 toFixed和toPrecision | toExponential 、 toFixed和toPrecision |
功能 | 它不接受NaN或Infinity作为合法值,不适用于其他基数的数字,并且运行时配置选项仅限于设置涉及除法的运算的小数位数和舍入模式,以及指数值其中toString产生指数表示法 | 一年内 | decimal.js还支持非整数幂并添加了三角函数以及exp 、 ln和log方法。这些添加使得decimal.js明显大于bignumber.js。 |
使用场景推荐 | 简单的精度要求 | 更适合金融应用程序,因为除非使用涉及除法的运算,否则用户不需要担心失去精度 | 更适合更科学的应用程序,因为它可以更有效地处理非常小或很大的值。 |
其他 | 不接受NaN或Infinity作为合法值 | 一年内 | 精度是根据Decimal.js中的有效数字而不是小数位来指定的,并且所有计算都四舍五入到该精度(类似于 Python 的十进制模块),而不仅仅是涉及除法的计算。 |