js 数学计算精度库 比较

统计时间取自 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产生指数表示法 多基数值,支持NaN;Infinity。功能、配置不如decimal.js 多基数值。支持NaN;Infinity。 decimal.js还支持非整数幂并添加了三角函数以及exp 、 ln和log方法。这些添加使得decimal.js明显大于bignumber.js。精度是根据Decimal.js中的有效数字而不是小数位来指定的,并且所有计算都四舍五入到该精度(类似于 Python 的十进制模块),而不仅仅是涉及除法的计算。
使用场景推荐 简单的精度要求 更适合金融应用程序,因为除非使用涉及除法的运算,否则用户不需要担心失去精度 更适合更科学的应用程序,因为它可以更有效地处理非常小或很大的值。
posted @ 2024-10-12 13:16  wanglei1900  阅读(117)  评论(0编辑  收藏  举报