Solidity

絕對值如何在可靠中起作用?

  • February 8, 2022

出於某種原因,我會得到兩個值,它們是 uint256。

如何計算 uint256 然後得到絕對值?

uint256 a = 5;
uint256 b = 9;

return a-b; // will be return 4
return b-a; // will be return 4

根據定義,uint無符號的。這意味著它只能是積極的。如果您在 Solidity 版本 0.8.x 中嘗試範常式式碼,a - b將會給您一個異常,因為它會變為負數。

要完成您想要的,您可以使用以下函式(取自https://ethereum.stackexchange.com/a/84391/31933):

function abs(int x) private pure returns (int) {
   return x >= 0 ? x : -x;
}

請注意,該函式使用inttype (可以有負值)而不是uint.

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