1

我正在尝试将一个数字四舍五入到另一个数字(在我的情况下为 x * 90),经过一番搜索后,由于这段代码,我得到了它的工作:

round(number / 90) * 90;

问题是这是否是最好的方法?感觉就像一些试验/错误代码..

4

2 回答 2

2

假设数字是整数

((number + (90/2))/90) * 90;

如果你想使用 round() 和朋友,你必须转换为浮点数。以上都是用整数完成的。无论如何,有很多方法可以做到这一点(在你的例子中,返回将是一个浮点数,但是一个整数大小的。

于 2012-07-31T15:04:58.563 回答
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]];
于 2012-07-31T15:02:03.267 回答