# Properties

# 静态方法

静态方法调用后一般返回 BigNumber 实例

# config(set)

给构造函数设置参数

# DECIMAL_PLACES

设置小数位数

BigNumber.config({ DECIMAL_PLACES: 4 })
BigNumber.random().toNumber() // 0.7793
1
2

# sum

计算传入的参数和,参数类型可以是 String,Number

// 两数之和
var x = BigNumber.sum('11', 23)
x.toNumber() // 34

// 多个参数
arr = [2, new BigNumber(14), '15.9999', 12]
var y = BigNumber.sum(...arr)
y.toString() // '43.9999'
1
2
3
4
5
6
7
8

# clone

生成 bignumber 构造函数

var X = BigNumber.clone()
var y = new X()
y // bignumber实例
1
2
3

# isBigNumber

判断是否是 bignumber 实例,通过 clone 的构造函数生成的实例仍然是 bignumber 实例,但是原型与 BigNumber 原型不同

var y = new BigNumber(2)
BigNumber.isBigNumber(y) // true
y instanceof BigNumber // true

var BN = BigNumber.clone()
z = new BN(x)
z instanceof BigNumber // false
BigNumber.isBigNumber(z) // true
1
2
3
4
5
6
7
8

# maximum,minimum

求最大值,简写 max,min

var x = [2222, 3333, '4444']
BigNumber.max(...x).toNumber() // 4444
BigNumber.min(...x).toNumber() // 2222
1
2
3

# random

生成伪随机数,传入参数决定小数位数

BigNumber.random().toNumber() // 0.1501651215311695
BigNumber.random(3).toNumber() // 0.150
1
2

# 实例方法

# negated

相反数

var x = new BigNumber(1.8)
x.negated() // -1.8
1
2

# absoluteValue(abs)

绝对值

var x = new BigNumber(-0.01)
x.abs().toNumber() // 0.01
1
2

# comparedTo

比较两数,返回值: 1: 大于 -1:小于 0:等于 null:比较值出现 NaN

var x = new BigNumber(Infinity)
var y = new BigNumber(5)
var z = new BigNumber(5)
x.comparedTo(y) // 1
y.comparedTo(x) // -1
y.comparedTo(z) // 0
y.comparedTo(NaN) // null
1
2
3
4
5
6
7

# decimalPlaces(dp)

确定小数位数

var x = new BigNumber(1234.5678912345)
var y = new BigNumber(1234.56)
x.dp(2).toNumber() // 1234.56
y.dp(10).toNumber() // 1234.56
1
2
3
4

# plus

加法运算

0.1 + 0.2 // 0.30000000000000004
var x = new BigNumber(0.1)
x.plus(0.2).toNumber() // 0.3
1
2
3

# minus

减法运算

0.3 - 0.1 // 0.19999999999999998
var x = new BigNumber(0.3)
x.minus(0.1) // 0.2
1
2
3

# multipliedBy(times)

乘法运算

0.6 * 3 // 1.7999999999999998
var x = new BigNumber(0.6)
x.times(3) // 1.8
1
2
3

# dividedBy(div)

除法运算

var x = new BigNumber(300)
x.div(3).toNumber() // 100
x.div(7).dp(3).toNumber() // 42.857
1
2
3

# dividedToIntegerBy(idiv)

除法运算,返回整数

var x = new BigNumber(5)
x.idiv(3).toNumber() // 1
x.idiv(0.7).toNumber() // 7
1
2
3

# modulo(mod)

取余

1 % 0.9 // 0.09999999999999998
var x = new BigNumber(1)
x.mod(0.9).toNumber() // 0.1
1
2
3

# exponentiatedBy(pow)

幂运算

Math.pow(0.7, 2) // 0.48999999999999994
var x = BigNumber(0.7)
x.pow(2).toNumber() // 0.49
1
2
3

# integerValue

取整,参数取值参考 Properties

var x = new BigNumber(123.456)
x.integerValue().toNumber() // 123
x.integerValue(BigNumber.ROUND_CEIL).toNumber() // 124
1
2
3

# isEqualTo(eq)

比较两数是否相等,NaN 不等于 NaN

0 === 1e-324 // js中
var x = new BigNumber(0)
x.eq('1e-324') // false

var y = new BigNumber(NaN)
y.eq(NaN) // false
1
2
3
4
5
6

# isFinite

判断数字是否有效

var x = new BigNumber(1)
x.isFinite() // true

var y = new BigNumber(Infinity)
y.isFinite() // false

var z = new BigNumber(NaN)
z.isFinite() // false
1
2
3
4
5
6
7
8

# isGreaterThan(gt)

0.1 > 0.3 - 0.2 // true
var x = new BigNumber(0.1)
x.gt(BigNumber(0.3).minus(0.2)) // false
1
2
3

# isGreaterThanOrEqualTo(gte)

判断是否大于等于某数,用法同 isGreaterThan

# isLessThan(lt)

判断是否小于某数,用法同 isGreaterThan

# isLessThanOrEqualTo(lte)

判断是否小于等于某数,用法同 isGreaterThan

# isNaN

判断是否是 NaN

var x = new BigNumber(NaN)
x.isNaN() // true

var y = new BigNumber(Infinity)
y.isNaN() // false
1
2
3
4
5

# isPositive

判断是否是正数

var x = new BigNumber(-0)
x.isPositive() // false
1
2

# isNegative

判断是否是负数,用法同 isPositive

# isZero

判断是否是 0 或者-0

var x = new BigNumber(-0)
x.isZero() // true
1
2

# toFixed

控制小数位数,不够后面补 0

var x = 3.456
var y = new BigNumber(x)
x.toFixed().toNumber() // 3
y.toFixed().toNumber() // 3.456
y.toFixed(0).toNumber() // 3
y.toFixed(2).toNumber() // 3.46
y.toFixed(5).toNumber() // 3.45600
1
2
3
4
5
6
7

# toNumber

转 Number

# toString

转 String

Last Updated: 7/16/2020, 6:11:09 PM