好的 - 我几乎很尴尬在这里发布这个(如果有人投票关闭,我会删除),因为这似乎是一个基本问题。
这是在 C++ 中四舍五入到一个数字的倍数的正确方法吗?
我知道还有其他与此相关的问题,但我特别想知道在 C++ 中执行此操作的最佳方法是什么:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int roundDown = ( (int) (numToRound) / multiple) * multiple;
int roundUp = roundDown + multiple;
int roundCalc = roundUp;
return (roundCalc);
}
更新:对不起,我可能没有明确意图。这里有些例子:
roundUp(7, 100)
//return 100
roundUp(117, 100)
//return 200
roundUp(477, 100)
//return 500
roundUp(1077, 100)
//return 1100
roundUp(52, 20)
//return 60
roundUp(74, 30)
//return 90
原文由 Robben_Ford_Fan_boy 发布,翻译遵循 CC BY-SA 4.0 许可协议
这适用于正数,不确定负数。它只使用整数数学。
编辑:这是一个适用于负数的版本,如果“向上”是指始终 >= 输入的结果。