NSNumber Formatting (округление до места 1000) - PullRequest
2 голосов
/ 02 июня 2011

В настоящее время у меня есть ряд объектов NSNumber со значениями от 0 до 500 000. Это случайные значения со многими десятичными разрядами.

Как можно распечатать эти значения, но округлить их до ближайшей 1000? Например, 32143.8472 будет округлено до 32000. Для простоты, давайте предположим, что я хочу их в NSLog ...

например.

NSLog(@"The number is: %@", WHATGOESHERE??)

1 Ответ

11 голосов
/ 02 июня 2011

NSNumber объекты подходят для хранения значений, для числовых операций вы должны использовать простые числовые типы (например, int)

Попробуйте следующий код:

int rounded = 1000*(([number intValue]+500)/1000);

Что там происходит:

  1. [number intValue]
    Это получает целую часть нашего числа

  2. добавить 500 и разделить на 1000 - получить ближайшее число тысяч в нашем номере

  3. Умножить на 1000 - компенсировать предыдущее деление, чтобы получить число, фактически округленное до тысяч

И войдите, если хотите:

NSLog(@"The number is: %d", rounded)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...