有什么好的方法可以把一个数字舍入最接近的10的位置吗?我有一个计算数字百分比的函数,但我只想返回10的倍数。例如,如果它是12%,那么它应该返回10,如果它是59%,那么它应该返回50。
uint256 timeRemaining = block.timestamp - startTimestamp;
uint256 totalStakeTime = dayLength.mul(daySeconds);
uint256 percent = timeremaining.mul(100) / totalStakeTime;
//return 10, 20, 30, 40....90发布于 2021-07-17 15:52:51
如果您希望将数字的倍数设为10,则可以使用SafeMath进行此操作。
方法1:
uint256 num = 59;
return num.div(10).mul(10); // return 50办法2:
uint256 num = 59;
return num.sub(num.mod(10)); // return 50注意:这两种方法应该工作得很好,但是气体成本可能有点不同。
https://ethereum.stackexchange.com/questions/103649
复制相似问题