Мне нужно было иметь возможность округлить до определенной цифры (не обязательно до целых чисел). Я сделал категорию NSNumber
(основываясь на ответе Эша ) и добавил к ней следующий метод:
- (NSString *)stringByRounding:(NSNumberFormatterRoundingMode)roundingMode
toPositionRightOfDecimal:(NSUInteger)position
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:position];
[formatter setRoundingMode:roundingMode];
NSString *numberString = [formatter stringFromNumber:self];
return numberString;
}
Что позволяет мне использовать его так:
[aNumber stringByRounding:NSNumberFormatterRoundUp toPositionRightOfDecimal:2];
Я могу использовать его для округления до целых чисел, передав 0
в качестве второго параметра:
[aNumber stringByRounding:NSNumberFormatterRoundPlain toPositionRightOfDecimal:0];