NSNumber и десятичное значение - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть NSNumber, например, например = 1978, я хотел бы преобразовать это для: 1K9, второй пример: 35700, преобразовать в: 35K7 (где «k» - это километры, а «M» - метры, как я могу это сделатьэто

спасибо

Ответы [ 4 ]

2 голосов
/ 10 февраля 2012

Вот как:

NSNumber *initialNumber = [NSNumber numberWithInt:35700];
NSString *resultString = [NSString stringWithFormat:@"%iK%i", floor(initialNumber / 1000), floor((initialNumber % 1000) / 100)];
2 голосов
/ 10 февраля 2012
  int temp;
    NSNumber *yourNumber;//the number you enter from some where
    NSString *newValue;

    if([yourNumber intValue]>1000){
        temp = [yourNumber intValue] % 1000 ;//your number module 1000
        newValue= [[temp stringValue]stringByAppendingString:@"K"];

    }

Примечание: у меня нет моего Mac со мной, если [temp stringValue] дает какие-либо сомнения и ошибки, пожалуйста, сообщите мне.

1 голос
/ 10 февраля 2012

В основном вы можете работать с внутренними номерами данных.Предполагая, что вы работаете со значением на основе счетчика, вы можете захотеть что-то вроде этого:

NSNumber *sourceValue = ... // your NSNumber value from any source
int meters = sourceValue.intValue;
int km = floor(meters / 1000);          // only your kilometers
int sub_km = meters % 1000;             // only the part behind the kilometers
int first_sub_km = floor(sum_km / 100); // the first digit of the subrange
NSString *readable = [NSString stringWithFormat:@"%iK%i", km, first_sub_km];

Сначала вы разбиваете счетчики на <= 1000 и> 1000. Затем вам просто нужно поставить этовне отформатированный, с K между.

0 голосов
/ 10 февраля 2012

Напишите свой собственный подкласс NSNumberFormatter. В этом подклассе вы можете реализовать логику расчета.

Логика может выглядеть следующим образом.

  1. Разделите значение на thousend и добавьте "k"
  2. если вы хотите, чтобы первая цифра из сотен получила последнюю цифру вашего значения
  3. вернуть новую строку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...