是否有读取ERC20供应并在输出中给出不带小数的数字的功能



在我之前的文章中,我发现了如何允许用户输入多个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))

相关内容

  • 没有找到相关文章

最新更新