我想将数字四舍五入到最接近的'x'。我试过了
roundedNumber = x * floor(originalNumber / x + 0.5f);
这似乎适用于计算器。但在我的可可应用程序中,它总是向下舍入到最接近的60。
我犯了一个明显的错误吗?
originalNumber和roundedNumber都是NSIntegers。
答案 0 :(得分:1)
NSInteger本质上是一个int / long,因此请尝试将其类型化为float:
roundedNumber = x * floor(float(originalNumber)/x + 0.5f);
更好的是,使用round():
roundedNumber = x * round(float(originalNumber)/x);
答案 1 :(得分:0)
尝试roundedNumber = x * floor((originalNumber / x)+ 0.5f); 和roundedNumber = x * floor(originalNumber /(x + 0.5f));