如何计算硬度百分比

Spa*_*bar 9 ethereum solidity

    function splitAmount(uint256 amount) private {
        a1.transfer(amount.div(2));
        a2.transfer(amount.div(2));
    }
Run Code Online (Sandbox Code Playgroud)

我看过其他关于此的主题,但我觉得事情过于复杂。使用此代码,金额除以 2 后在 a1 和 a2 之间平均分配。

如何使用相同的代码执行 80/20 拆分之类的操作?

Pet*_*jda 15

80% 和 80% 是一样的

  • 乘以 80,然后除以 100

  • 乘以 4,然后除以 5

a1.transfer(amount.mul(4).div(5)); // 80% of `amount`
Run Code Online (Sandbox Code Playgroud)

您可以用同样的方式简化 20%:

  • 乘以 20,然后除以 100

    这是

  • 乘以 1,然后除以 5

    这就是简单的

  • 除以 5

a2.transfer(amount.div(5)); // 20% of `amount`
Run Code Online (Sandbox Code Playgroud)

  • @Alessandro 是的,`amount` 可以被 100 整除...如果 `amount` 值为 50,则 `.div(5).mul(4)` 将按预期返回 40。但是 `.div(100).mul(80)` 将返回 0,因为它首先计算 `50 / 100` (结果是无符号整数 0),然后计算 `0 * 80`。 (2认同)