圆形数字均匀

Ada*_*tau 0 math objective-c ios5

如何根据对象C中的值向上或向下舍入数字.例如.

让我们说数字是143 - 我想要下降到140但如果数字是146 - 我想要舍入到150

有什么建议?

Sev*_*yev 7

假设145应该舍入到150(这是科学和技术的标准),公式是:

x_rounded = ((x + 5)/10)*10;
Run Code Online (Sandbox Code Playgroud)

更一般地说,当舍入到最接近的n时,它就是

x_rounded = ((x + n/2)/n)*n;
Run Code Online (Sandbox Code Playgroud)

它来自于整数除法总是向下舍入的事实.

对于负数,它稍微有些棘手.

编辑:也假设它是全部整数.使用浮点数/双精度数,更好地使用C数学库,因为除法的工作方式不同.像这样:

#include <math.h>

x_rounded = floor((x+5)/10) * 10;
Run Code Online (Sandbox Code Playgroud)