文档:bignumber.js API
github:GitHub - MikeMcl/bignumber.js: A JavaScript library for arbitrary-precision decimal and non-decimal arithmetic
npm地址:bignumber.js - npm
bignumber.js特性
整数和小数
简单的API,但功能齐全
比Java的BigDecimal的JavaScript版本更快,更小,更容易使用
缩小到8 KB
复制toExponential,toFixed,toPrecision和toStringJavaScript的数字类型的方法
包含toFraction和正确舍入的squareRoot方法
支持加密安全的伪随机数生成
没有依赖
广泛的平台兼容性:仅使用JavaScript 1.5(ECMAScript 3)功能
全面的文档和测试集
使用:
1、本地引入:
<script src='path/to/bignumber.js'></script>
2、ES module
<script type="module">
import BigNumber from './path/to/bignumber.mjs';
3、CDN
<script src='https://cdn.jsdelivr.net/npm/bignumber.js@9.0.2/bignumber.min.js'></script>
javascript">
// 计算传入的参数和,参数类型可以是 String,Number
// 两数之和
let x = BigNumber.sum('11', 23)
x.toNumber() // 34
// 多个参数
arr = [2, new BigNumber(14), '15.9999', 12]
let y = BigNumber.sum(...arr)
y.toString() // '43.9999'
// maximum,minimum
// 求最大值,简写 max,min
let x = [2222, 3333, '4444']
BigNumber.max(...x).toNumber() // 4444
BigNumber.min(...x).toNumber() // 2222
decimalPlaces(dp)
// 确定小数位数
let x = new BigNumber(1234.5678912345)
let y = new BigNumber(1234.56)
x.dp(2).toNumber() // 1234.56
y.dp(10).toNumber() // 1234.56
// plus
// 加法运算
0.1 + 0.2 // 0.30000000000000004
let x = new BigNumber(0.1)
x.plus(0.2).toNumber() // 0.3
// minus
// 减法运算
0.3 - 0.1 // 0.19999999999999998
let x = new BigNumber(0.3)
x.minus(0.1) // 0.2
multipliedBy(times)
// 乘法运算
0.6 * 3 // 1.7999999999999998
let x = new BigNumber(0.6)
x.times(3) // 1.8
dividedBy(div)
// 除法运算
let x = new BigNumber(300)
x.div(3).toNumber() // 100
x.div(7).dp(3).toNumber() // 42.857
dividedToIntegerBy(idiv)
// 除法运算,返回整数
let x = new BigNumber(5)
x.idiv(3).toNumber() // 1
x.idiv(0.7).toNumber() // 7
modulo(mod)
// 取余
1 % 0.9 // 0.09999999999999998
let x = new BigNumber(1)
x.mod(0.9).toNumber() // 0.1