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