Solidity
如何處理solidity中的精度錯誤?
假設我有一些劃分,結果是答案不一。
我已將其乘以 10^18 以給出小數,但問題仍然是 1。
我如何停止重複此計算而將其大量丟棄?
例如,如果使用者呼叫該函式 10,000 次,則答案不再偏離 1,而是現在偏離了 10,000。
處理這個問題的最佳方法是什麼?
可以這樣做並對不精確進行硬編碼嗎?
myVariable -= foo + 1
這真的取決於上下文。
對於許多操作,例如令牌交換,舍入誤差
1 x 10^(-18)
可能是可以的。支付更多的交易費用。一些隨著時間的推移累積錯誤的合約,如 MakerDao,使用更多的數字。在這些情況下,我建議仔細研究舍入誤差隨時間的影響。您會更喜歡這樣的解決方案,從長遠來看,更正可以消除錯誤。