首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web3.eth.getBalance(.).toNumber()返回巨大的数字

Web3.eth.getBalance(.).toNumber()返回巨大的数字
EN

Stack Overflow用户
提问于 2018-03-21 07:50:00
回答 2查看 4.4K关注 0票数 0

我正在使用MetaCoin盒在松露开发模式。前端试图获得一个帐户的余额,但得到一个巨大的数字。

前端代码如下:

代码语言:javascript
复制
var coinbase = web3.eth.coinbase;
var balance = web3.eth.getBalance(coinbase).toNumber();

更具体地说,默认情况下,第一个帐户松露生成的帐户应该有10k的余额。在运行一个测试后,如上面的链接所示。它的余额应该是9990。如果我在测试文件中console.log它,这是正确的。

但是我从前端得到的balance变量是1000000000000000000。经过测试,它将达到99917820100000000000。这种差异显然不是10或它的指数。

为什么以及如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2018-03-21 07:54:41

它只是在显示wei中的平衡,或者以太* 10^18,换句话说,它显示的是1,而不是.000000000000000001醚。

除以1e18,如果你想要整数,它很可能这样做,以避免浮点错误。根据他们的文档,测试帐户以10以太和10,000 MetaCoins开始,这就是您混淆的地方。

你的第二个号码不是9990000.是因为交易费用

票数 3
EN

Stack Overflow用户

发布于 2018-03-21 08:15:30

web3.eth.getBalance()返回帐户的以太余额,以魏为单位。乙醚中有10^18卫。100000000000000000000魏是10以太,我想这是您本地测试网络中默认的帐户起始余额。99917820100000000000大概是在为您运行的测试用例支付天然气之后剩下的乙醚的数量。

您希望看到10,000的余额,因为您正在考虑帐户应该拥有的MetaCoins的数量。(这与乙醚的数量无关。)

要获得MetaCoins的编号,您需要调用MetaCoin合同上的balanceOf(account)。如果您查看测试代码,您将看到它正在检查帐户的MetaCoin余额。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49400787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档