有没有一种惯用的方法来四舍五入到一个数字的最近倍数,而不是向上和向下四舍五入并查看哪个最接近?
假设只有整数:
number multiple result
12 5 10
13 5 15
149 10 150
最佳答案
将倍数的一半相加,然后向下舍入。
result = ((number + multiple/2) / multiple) * multiple;
或
result = number + multiple/2;
result -= result % multiple;
如果数字正好在中间,则四舍五入。如果您在这种情况下想要不同的行为,您可能需要调整计算。另外,如果 number
可能接近类型范围的顶部,请注意溢出。
关于c++ - 四舍五入到最接近的数字的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29557459/