我正在尝试将一个数字舍入到另一个数字(在我的情况下是x * 90),经过一些搜索后我得到了它,感谢这段代码:
round(number / 90) * 90;
问题是这是否是最好的方法呢?它只是感觉像一些试用/错误代码..
答案 0 :(得分:2)
这是正确的做法。如果你正在进行双打,你应该使用NSNumberFormatter
:
float roundedValue = round(number / 90) * 90;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:1];
[formatter setRoundingMode: NSNumberFormatterRoundDown];
NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:roundedValue]];
答案 1 :(得分:2)
假设数字是整数
((number + (90/2))/90) * 90;
如果你想使用round()和朋友,你必须转换为浮点数。以上都用整数来做。在任何情况下,有很多方法可以做到这一点(在你的例子中,返回将是一个浮点数,但是一个整数。)