Solidity

乘小有理數得到整數片

  • May 17, 2019

我正在嘗試在 Solidity 中進行一些高級計算。我能夠在我的合約上成功實現該算法,但它的結果遠低於零,每當我嘗試使用 Javascript 獲取它時,它只會四捨五入到 0。有什麼辦法可以將儲存在變數中的分數相乘一個非常大的數字,所以我可以在這裡得到一些精度?例子:

uint256 x = uint256(5)/uint256(10);

進而:

x *= 100;

導致:

> x = 50 <

這是我實現的一些程式碼:

在此處輸入圖像描述

謝謝。

因為 EVM 只處理整數,所以 5/10 = 0。隨後的乘法無關緊要。

更改操作順序,使除法排在最後,並在需要時考慮使用小數精度的這個想法。不能做任何整數除法

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/70787