关于bigNumber的使用

做了一个虚拟币项目,体会到了什么是18层地狱

说一下常用方法

1 bigNumber类型转科学计数法

一般链上返回给我们的数据是超过18位的,和精度有关系;

balance:BigNumber类型的数字

decimals: 精度

dividedBy:BigNumber中的除法
lt:BigNumber中的是否小于
toPrecision:BigNumber中的方法,保留0后面的位数,比如0.0000234944 toPrecision(4) 变成 0.00002349
 
export const getDisplayBalance = (balance: BigNumber, decimals = 18) => {
  const displayBalance = balance.dividedBy(new BigNumber(10).pow(decimals))
  if (displayBalance.lt(1)) {
    return displayBalance.toPrecision(4)
  } else {
    return displayBalance.toFixed(2)
  }
}

 

posted @ 2020-09-27 14:36  郭扬  阅读(4239)  评论(0编辑  收藏  举报