如何处理 Solidity 代码中的舍入错误?避免精度损失或跟踪精度损失?

问题描述 投票:0回答:1

如何处理 Solidity 代码中的舍入错误?避免精度损失或跟踪精度损失。

例如,如果我在用户进行质押时将一些计算的(包括除法)因子存储在变量中,那么当他赎回时,计算的因子将用于计算他的回报。

然而,考虑到计算的因子有一定的精度损失,用户将获得比他应得的更少的 wei 量。我们该如何处理这个问题?主要协议如何满足这一点?我们是否简单地接受代币 wei 数量的损失?

我查找了一些协议,例如 0x, https://github.com/0xProject/protocol/blob/b19e29e03d8a6bf5d797af18c3ce227594994f55/contracts/utils/contracts/src/v08/LibMathV08.sol#L134C2-L134C2

但是我无法理解目标参数的含义。

error-handling solidity rounding-error uint evm
1个回答
0
投票

我想没有直接的方法可以解决 Solidity 中的舍入误差。

减少错误的一个简单方法就是使用一个大的乘法器并最后进行除法

© www.soinside.com 2019 - 2024. All rights reserved.