Vyper
vyper(和solidity)中的Uint256部門
如此處所述,solidity 不支持浮點除法:如何在solidity 中執行浮點型除法?
我想將兩個 uint256 數字相除並將它們保存為小數,保留 10 個小數位的精度。我是否需要先將這些數字乘以 10000000000,然後將它們相除,然後保存小數,然後再將小數除以 10000000000?
如果您有兩個 uint a 和 b,並且您希望將 a 除以 b ->
a/b
10 位小數,那麼您可以執行以下操作uint aScaled = a * 10**10; uint divScaled = a / b; // b is not scaled! uint decN = divScaled / 10**10; uint decFrac = divScaled % 10**10
例子
a = 3; b = 2; aScaled = 3 * 10000000000; // = 30000000000 divScaled = 30000000000 / 2; // = 15000000000 decN = 15000000000 / 10000000000; // = 1 decFrac = 15000000000 mod 1000000000;// = 5000000000
我會保持數字按 10**10 縮放,並在 UI 中僅將其顯示為小數。