舍入问题

时间:2011-03-30 00:40:03

标签: objective-c

我想将数字四舍五入到最接近的'x'。我试过了

roundedNumber = x * floor(originalNumber / x + 0.5f);

这似乎适用于计算器。但在我的可可应用程序中,它总是向下舍入到最接近的60。

我犯了一个明显的错误吗?

originalNumber和roundedNumber都是NSIntegers。

2 个答案:

答案 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((ori​​ginalNumber / x)+ 0.5f); 和roundedNumber = x * floor(originalNumber /(x + 0.5f));