Преобразование NSNumber в NSString с NSNumberFormatter - PullRequest
7 голосов
/ 22 февраля 2011

Я преобразую NSNumber в NSString, предполагая в этом примере, что выбранный ключ в "theindex" равен 1000000

NSNumber  *firstNumber = [tempDict objectForKey:@"theindex"];
NSString *convertNumber = [firstNumber stringValue];

Возвращает NSString "1000000"

Мне бы хотелось, чтобы значение строки было "1,000,000".

Я не занимаюсь локализацией, но из других вопросов понимаю, что NSNumberFormatter следует реализовать. Я не уверен, как это сделать?

Ответы [ 2 ]

18 голосов
/ 22 февраля 2011

Вот пример использования стандартного стиля форматирования NSNumberFormatter:

NSNumber *firstNumber = [NSNumber numberWithInt:123456789];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *convertNumber = [formatter stringForObjectValue:firstNumber];
NSLog(@"value : %@", convertNumber);

Другие примеры, на которые вы можете ссылаться:
http://iosdevelopertips.com/cocoa/formatting-numbers-nsnumberformatter-examples.html

2 голосов
/ 22 февраля 2011
 NSNumber  *firstNumber = [[NSNumber alloc] initWithInt:1000000] ;
 NSNumberFormatter *format=[[NSNumberFormatter alloc] init];
 [format setGroupingSize:3];
 [format setCurrencyGroupingSeparator:@","];
 [format setNumberStyle:NSNumberFormatterDecimalStyle];
 NSString *convertNumber = [format stringFromNumber:firstNumber];
...