# 37、web3大数精度处理

# bignumber.js

TIP

// 导入
import BigNumber from 'bignumber.js';

const num = new BigNumber(val)

num.plus(n [, base]) ⇒ BigNumber // 加法 
num.minus(n [, base]) ⇒ BigNumber // 减法 
num.times(n [, base]) ⇒ BigNumber // 乘法
num.div(n [, base]) ⇒ BigNumber // 除法
num.mod(n [, base]) ⇒ BigNumber // 取模/取余
num.pow(n [, m]) ⇒ BigNumber // 指数运算
num.sqrt() ⇒ BigNumber // 开平方
num.comparedTo(n [, base]) ⇒ number // 比较大小  1:大于n 0:等于n  -1:小于n    null:num或n为NaN

num.eq(n [, base]) ⇒ boolean // 相等比较
num.gt(n [, base]) ⇒ boolean // 是否大于
num.gte(n [, base]) ⇒ boolean // 是否大于等于
num.lt(n [, base]) ⇒ boolean // 是否小于
num.lte(n [, base]) ⇒ boolean // 是否小于等于

num.dp([dp [, rm]]) ⇒ BigNumber|number // 精度调整
num.integerValue([rm]) ⇒ BigNumber // 取整
num.sd([d [, rm]]) ⇒ BigNumber|number // 有效数字
num.toFixed([dp [, rm]]) ⇒ string // 保留小数位数

# ethers中的 BigNumber

TIP

// 导入
import { BigNumber } from "ethers"; 
const num = BigNumber.from(val);

num.add(otherValue) ⇒ BigNumber // 加法
num.sub(otherValue) ⇒ BigNumber // 减法
num.mul(otherValue) ⇒ BigNumber // 乘法
num.div(otherValue) ⇒ BigNumber // 除法
num.mod(otherValue) ⇒ BigNumber // 取模/取余
num.pow(otherValue) ⇒ BigNumber // 指数运算
num.abs() ⇒ BigNumber // 绝对值

num.eq(otherValue) ⇒ boolean // 相等比较
num.gt(otherValue) ⇒ boolean // 是否大于
num.gte(otherValue) ⇒ boolean // 是否大于等于
num.lt(otherValue) ⇒ boolean // 是否小于
num.lte(otherValue) ⇒ boolean // 是否大于等于
num.isZero() ⇒ boolean // 是否大于等于
上次更新: 7/14/2023, 3:01:40 PM