做了一个虚拟币项目,体会到了什么是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) } }