https://www.npmjs.com/package/bignumber.js
https://github.com/MikeMcl/bignumber.js
文档地址:https://mikemcl.github.io/bignumber.js/
一个JavaScript库,用于任意精度的十进制和非十进制算术。
特征
- 整数和小数
 - 简单的API,但功能齐全
 - 比Java的BigDecimal的JavaScript版本更快,更小,甚至更容易使用
 - 缩小并压缩8 KB
 - 复制
toExponential,toFixed,toPrecision和toStringJavaScript的数字类型的方法 - 包含
toFraction和正确舍入的squareRoot方法 - 支持加密安全的伪随机数生成
 - 没有依赖关系
 - 广泛的平台兼容性:仅使用JavaScript 1.5(ECMAScript 3)功能
 - 全面的文档和测试集
 
用法
加法 plus
- 语法
.plus(n [, base])- 参数值
n(必需):number|string|BigNumber参与计算的数字base:number进制 (默认为十进制)
 - 返回值
BigNumber 
 - 参数值
 - 举例 ```javascript
 
- 0.1 + 0.2 // 0.30000000000000004
 - x = new BigNumber(0.1)
 - y = x.plus(0.2) // ‘0.3’
 - BigNumber(0.7).plus(x).plus(y) // ‘1’
 - x.plus(‘0.1’, 8) // ‘0.225’ ```
 
减法 minus
- 语法
.minus(n [, base])- 参数值
n(必需):number|string|BigNumber参与计算的数字base:number进制 (默认为十进制)
 - 返回值
BigNumber
 
 - 参数值
 - 举例 ```javascript
 
- 0.3 - 0.1 // 0.19999999999999998
 - x = new BigNumber(0.3)
 - x.minus(0.1) // ‘0.2’
 - x.minus(0.6, 20) // ‘0’ ```
 
乘法 multipliedBy
- 语法
.times(n [, base])- 参数值
n(必需):number|string|BigNumber参与计算的数字base:number进制 (默认为十进制)
 - 返回值
BigNumber
 
 - 参数值
 - 举例 ```javascript
 
- 0.6 * 3 // 1.7999999999999998
 - x = new BigNumber(0.6)
 - y = x.multipliedBy(3) // ‘1.8’
 - BigNumber(‘7e+500’).times(y) // ‘1.26e+501’
 - x.multipliedBy(‘-a’, 16) // ‘-6’ ```
 
除法 dividedBy
- 语法
.div(n [, base])- 参数值
n(必需):number|string|BigNumber参与计算的数字base:number进制 (默认为十进制)
 - 返回值
BigNumber
 
 - 参数值
 - 举例 ```javascript
 
- x = new BigNumbejr(113)
 - x.dividedBy(y) // ‘3.14159292035398230088’
 - x.div(5) // ‘71’
 - x.div(47, 16) // ‘5’ ```
 
注意
结果转换
x = new BigNumber(255.5)x.toExponential(5) // "2.55500e+2"x.toFixed(5) // "255.50000"x.toPrecision(5) // "255.50"x.toNumber() // 255.5
