首页 > 解决方案 > 用户界面 Dapps 中的小数

问题描述

在 ERC20 代币上发送交易时,十进制变量设置为 18,您必须将值乘以 10^18。我不想让 dapp 的用户将他们的价值乘以这个数量。这对用户非常不友好。你如何解决这个问题?任何帮助表示赞赏!

标签: ethereum

解决方案


您的代码可以为它们成倍增加。只需将输入值乘以 10^18。

<input type="text" name="to" value="0x123">
<input type="number" name="amount" value="5">
const inputMock = {
    to: '0x123',
    value: 5
};

const myContract = new web3.eth.Contract(abiJson, contractAddress);
const txData = myContract.methods.transfer(
    inputMock.to,
    web3.utils.toWei(inputMock.value) // multiplies by 10^18 and returns the number as a string
);

文档:https ://web3js.readthedocs.io/en/v1.3.4/web3-utils.html#towei


推荐阅读