Округление числа с использованием NSNumberFormatter без использования строк - PullRequest
1 голос
/ 12 октября 2010

Это кажется действительно простым, но я не вижу, что NSNumberFormatter имеет функцию для этого, что странно.У меня есть номер, скажем, 4.1.Я хочу округлить до 5. Я подумал, что если бы я использовал NSNumberFormatter и установил для roundingMode значение NSNumberFormatterRoundUp, я бы получил желаемый результат.Но единственный способ получить число для округления теперь - это либо stringFromNumber, либо numberFromString.Кажется странным, что я просто не могу сохранить это число.

Я знаю, что могу просто преобразовать строку в число, но это кажется пустой тратой.Хотел узнать, был ли другой способ (round () не округлился бы, если бы число было 4,1) или есть метод, который я пропустил, просматривая класс ref.

Cheers

Ответы [ 2 ]

5 голосов
/ 12 октября 2010

Вы можете использовать стандартную функцию c ceil

CGFloat number = 4.1;
CGFloat roundedUp = ceil( number ); // Will be 5.0
2 голосов
/ 12 октября 2010

Вы можете использовать собственные функции C в Objective C. После чего вы получите ceil(). Если у вас уже есть NSNumber, вы можете использовать методы объекта, такие как floatValue, чтобы получить собственный C float.

float num = [ns_number floatValue];
num = ceil(num);
...