我正试图建立固体复合公式,但我遇到了一个问题,给定足够的天,金额是复合的,金额将溢出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