注册
登录
以太坊
以太坊坚实度司
返回
以太坊坚实度司
作者:
春风助手
发布时间:
2024-12-08 11:56:41 (13天前)
我正在创建签发代币的合同。我希望拥有代币的帐户能够检查它们在所有发行的代币中所占的百分比。我知道以太坊尚未实现浮点数。我该怎么办?
收藏
举报
2 条回复
1#
回复此人
只怕再见是故人
|
2020-08-20 10-47
在客户端而不是在Solidity中执行该计算可能是最好的(最低的气体成本,实现起来很简单)。 如果发现在Solidity中需要它,则只需移动小数点即可使用整数。类似于: https : //en.wikipedia.org/wiki/Parts-per_notation 例如,此函数让您决定精度等级,并使用一种额外的精度来正确舍入: ``` pragma solidity ^0.4.6; contract Divide { function percent(uint numerator, uint denominator, uint precision) public constant returns(uint quotient) { // caution, check safe-to-multiply here uint _numerator = numerator * 10 ** (precision+1); // with rounding of last digit uint _quotient = ((_numerator / denominator) + 5) / 10; return ( _quotient); } } ``` 如果以101,450喂食,则3会得到224,即22.4%。 希望能帮助到你。
编辑
登录
后才能参与评论