BigNumber.js数值计算-解决精度问题
Posted JackieDYH
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BigNumber.js数值计算-解决精度问题相关的知识,希望对你有一定的参考价值。
BigNumber.js-文档
特征
- 整数和小数
- 简单的API,但功能齐全
- 比Java的BigDecimal的javascript版本更快,更小,甚至更容易使用
- 缩小并压缩8 KB
- 复制
toExponential
,toFixed
,toPrecision
和toString
JavaScript的数字类型的方法- 包含
toFraction
和正确舍入的squareRoot
方法- 支持加密安全的伪随机数生成
- 没有依赖关系
- 广泛的平台兼容性:仅使用JavaScript 1.5(ECMAScript 3)功能
- 全面的文档和测试集
用法
加法 plus
- 语法
.plus(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. 0.1 + 0.2 // 0.30000000000000004
2. x = new BigNumber(0.1)
3. y = x.plus(0.2) // '0.3'
4. BigNumber(0.7).plus(x).plus(y) // '1'
5. x.plus('0.1', 8) // '0.225'
减法 minus
- 语法
.minus(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. 0.3 - 0.1 // 0.19999999999999998
2. x = new BigNumber(0.3)
3. x.minus(0.1) // '0.2'
4. x.minus(0.6, 20) // '0'
乘法 multipliedBy
- 语法
.times(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. 0.6 * 3 // 1.7999999999999998
2. x = new BigNumber(0.6)
3. y = x.multipliedBy(3) // '1.8'
4. BigNumber('7e+500').times(y) // '1.26e+501'
5. x.multipliedBy('-a', 16) // '-6'
除法 dividedBy
- 语法
.div(n [, base])
- 参数值
n
(必需):number|string|BigNumber
参与计算的数字base
:number
进制 (默认为十进制)
- 返回值
BigNumber
- 举例
1. x = new BigNumbejr(113)
3. x.dividedBy(y) // '3.14159292035398230088'
4. x.div(5) // '71'
5. 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
以上是关于BigNumber.js数值计算-解决精度问题的主要内容,如果未能解决你的问题,请参考以下文章
require('bignumber.js') 在松露测试中失败,npm ls -g 显示它已安装(Windows)