如何在 web3.js 中使用 toWei() 函数来处理具有 2 位小数的标记?

Sac*_*iya 5 decimal token web3js

我正在尝试使用名为 toWei() 的 web3js 函数将金额转换为 wei。

\n\n

这是我的代码:

\n\n
     var etherwithdrawamount1=web3Infura.utils.toWei(etherwithdrawamount, \'wei\'); \n
Run Code Online (Sandbox Code Playgroud)\n\n

现在的问题是代币金额计算不正确,因为代币有 2 位小数。

\n\n

在 web3 文档中:https://web3js.readthedocs.io/en/1.0/web3-utils.html#towei \n没有 2 位小数。

\n\n

number - String|Number|BN:值。

\n\n

unit - 字符串(可选,默认为“ether”):要转换的以太。

\n\n

可能的单位有:

\n\n
\n

诺特: \xe2\x80\x980\xe2\x80\x99
\n 威: \xe2\x80\x981\xe2\x80\x99
\n 奎: \xe2\x80\x981000\xe2\x80\x99
\n 奎: \xe2\x80\x981000\xe2\x80\x99
\n 巴贝奇: \xe2\x80\x981000\xe2\x80\x99
\n 毫微微以太网: \xe2\x80\x981000\xe2\x80\x99
\n mwei: \xe2 \x80\x981000000\xe2\x80\x99
\n Mwei:\xe2\x80\x981000000\xe2\x80\x99
\nlovelace:\xe2\x80\x981000000\xe2\x80\x99
\n 皮以太:\xe2\x80 \x981000000\xe2\x80\x99
\n gwei: \xe2\x80\x981000000000\xe2\x80\x99
\n Gwei: \xe2\x80\x981000000000\xe2\x80\x99
\n 香农:\xe2\x80\x9810000 00000 \xe2\x80\x99
\n 纳米以太:\xe2\x80\x981000000000\xe2\x80\
x99\n 纳米:\xe2\x80\x981000000000\xe2\x80\x99
\n 萨博:\xe2\x80\x981000000000000\xe 2 \x80\x99
\n 微以太:\xe2\x80\x981000000000000\xe2\x80\x99\
n 微:\xe2\x80\x981000000000000\xe2\x80\x99
\n 芬尼:\xe2\x80\x98100000000000000 0\xe2\x80 \x99
\n 毫以太: \xe2\x80\x981000000000000000\xe2\x80\x99
\n 毫以太: \xe2\x80\x981000000000000000\xe2\x80\x99
x80\x99

\n
\n\n

那么,如何在 toWei() 中获取令牌小数为 2 的正确值呢?

\n

Sac*_*iya 3

尝试这个:

function strtodec(amount,dec){
stringf = "";
for(var i=0;i<dec;i++){
stringf = stringf+"0";
}
return amount+stringf;
}
Run Code Online (Sandbox Code Playgroud)

您需要使用以下方法调用该函数:

strtodec(amount,'your token decimal here')
Run Code Online (Sandbox Code Playgroud)

逻辑是这样的:该函数添加您想要的小数位数的零。