我正在创建一个ERC20令牌,并将decimal指定为2,因为令牌可以具有10.32这样的值。
当我用我的dapp智能合同调用来铸造1000个硬币时,我的钱包里有10个硬币。我是否应该假设,在智能契约中的铸币功能中,在铸造硬币的实际数量之前,我应该以100 (由于2小数位数)的倍数计算?还是有别的办法来处理这件事?
Update:我调用了balanceOf方法,它将余额正确地作为1000返回,没有任何转换,但是在我的dapp中,它显示为10。
发布于 2018-02-02 07:05:48
由于EVM不能处理小数,所以需要指定小数。所以当你说你的令牌有2个小数时,这意味着你的令牌的最小单位是0.01。
所以你说铸币币值是1000 (实际上是1000/(10^2))。
简而言之,如果您需要发送/传输/薄荷n标记,则必须传递n*(10^小数)。
在您的示例中,如果您想要创建1000个令牌,则必须将1000 * 100传递给您的函数参数。
发布于 2018-02-02 08:30:57
乙醚区块链使用无符号整数(uint),它不接受小数。因此,您需要提到您的令牌中的小数位数。在此基础上,以太区块链将从最后一个数字取小数位数。
https://ethereum.stackexchange.com/questions/38287
复制相似问题