在我之前的文章中,我发现了如何允许用户输入多个ERC20令牌,并返回带有小数位数的值。
假设ERC20的小数位数为4,用户输入1.5,我们将使用.toFixed(4)
显示它们1.5000。
现在我正在尝试相反的方法(代码后面有更多信息),但似乎没有任何函数,如"fromFixed"。例如,我使用web3js 读取总供应量
checkBalance = async event => {
try {
const balance = await smartContract.methods.balanceOf(event).call();
console.log(balance)
} catch (err) {
let error= 'Address Error';
console.log(error)
}
};
假设你有10k ERC20,上面的代码将显示在输出100000000(即10000.0000)中
我试过balance.toFixed(4)
然而,输出更糟,因为我得到了1000000000000(100000000.0000)`
我尝试了console.log(web3.fromWei(balanceOf, 'ether'));
,希望它能转换成以太坊的18位小数,输出大约是10 000.0000000000000000000
这在"checkBalance"函数中永远不会起作用,因为它总是捕获错误。
在我看来,这与如何显示数字有关,而不是与一般的以太坊有关。在任何情况下,如果您想将10000显示为10.000,那么使用四位小数,您可以执行x=10000/1000;console.log(x.toFixed(4))
。更常见的是,要使用不同的小数位数d
显示数字n
,可以执行以下操作:x=n/(10^d);console.log(x.toFixed(d))