objective-c舍入数到最近的50

Mar*_*ark 26 iphone math objective-c

如何将数字舍入到最接近的X值(例如50)

即47将是50

24将是0

74将是50

99将是100

等等...

我真的不知道从哪里开始研究如何做到这一点......

PS我在iPhone上使用cocoa-touch

非常感谢马克

Dav*_*ndz 53

做这个:

50.0 * floor((Number/50.0)+0.5)
Run Code Online (Sandbox Code Playgroud)

  • 只有数字为正数时才准确 (2认同)

dan*_*n04 13

除以50,舍入到最接近的整数,然后乘以50.


iva*_*oid 7

所以,结合这里所说的,这里是一般功能:

float RoundTo(float number, float to)
{
    if (number >= 0) {
        return to * floorf(number / to + 0.5f);
    }
    else {
        return to * ceilf(number / to - 0.5f);
    }
}
Run Code Online (Sandbox Code Playgroud)


Rob*_*rtL 6

如果数字为正数:50*楼层(数字/ 50 + 0.5);

如果数字为负数:50*ceil(数字/ 50 - 0.5);