处理uint256范围之外的数字



我正试图建立固体复合公式,但我遇到了一个问题,给定足够的天,金额是复合的,金额将溢出uint256范围。

我读过,只要最终结果在uint256的范围内,它应该是好的,但似乎并非如此。这是我要做的计算

(100 * (100 + 8) ^ 100) * 10 ^ (6 - 2 * 100)

作为公式是这样的:

(BASE * ((1 * 10^MULTIPLIER) + (YIELD * 10^MULTIPLIER)) ^ COMPOUNDED_DAYS) * (10^ (DECIMALS - MULTIPLIER * COMPOUNDED_DAYS))

如前所述,这是6位小数的复合公式,但当我在playground中运行它时,我得到了&;0&;因此。问题是什么?如果有问题,我该如何解决?

原因是你的数字小于1,整数将其变为0

插入符号^表示位异或,而不是指数乘法。如果要计算"的幂,请使用两个星号**

示例:"10的2次方;in solid:10 ** 2

最新更新