做了一個虛擬幣項目,體會到了什么是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)
}
}
