在我之前的post中我找到了如何允许用户输入一定数量的 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(即 10,000.0000)。我想用最后 4 位小数的点来显示结果,因此只需 10000.0000 (10,000.0000)。
我尝试了balance.toFixed(4)
但是输出更糟,因为我得到 1000000000000 (10,000,0000.0000)`
我尝试了 console.log(web3.fromWei(balanceOf, 'ether'));
期望它将转换为以太坊的 18 位小数,输出将类似于 10 000.000000000000000000
这在“checkBalance”函数中永远不起作用,因为它总是捕获错误。
最佳答案
在我看来,这更多地与如何显示数字有关,而不是与一般的以太坊有关。无论如何,如果您想将 10000 显示为 10.000,那么使用四位小数,您可以执行 x=10000/1000;console.log(x.toFixed(4))
。更一般地说,要使用不同的小数位数 d
显示数字 n
,您可以执行以下操作:x=n/(10^d);console.log( x.toFixed(d))
关于javascript - 是否有一个函数可以读取 ERC20 供应并在输出中给出不带小数的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54494432/