Solidity

如何使用安全數學添加三個數字?

  • May 26, 2021

我知道這聽起來可能很明顯,但你永遠不能太確定。

假設我有三個數字 5、7 和 8。我可以像這樣添加它們嗎:

using SafeMath for uint256;

5.add(7.add(8));
// or even like so
5.add(7).add(8);
// or
5.add(7 + 8);

使用其中任何一個是否有任何風險(溢出或其他任何風險)?

寫作5.add(7)add(5, 7).

所以第一個表達式5.add(7.add(8))add(5, add(7, 8)),第二個5.add(7).add(8)add(add(5, 7), 8)

在 SafeMath 的特殊情況下,add兩個表達式都將得出相同的結果。對於其他功能sub,請div確保它們的順序正確。

最後一個表達式5.add(7 + 8)與其他表達式不同,因為7 + 8從不檢查溢出。在這裡沒關係,因為它們是小數字,但是如果您使用變數,它可能會中斷。

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