2011-01-22 8 views
0

Как создать форматирование чисел для форматирования больших чисел запятыми?NumberFormatter - ObjectiveC

Например, 2389378,289 должен стать 2,389,378.289

Обратите внимание, что не всегда есть три знака после запятой, и не всегда десятичное вообще. Используйте NSNumberFormatter.

Спасибо!

ответ

1
NSNumberFormatter *fmt = [[[NSNumberFormatter alloc] init] autorelease]; 
[fmt setAlwaysShowsDecimalSeparator:NO]; 
[fmt setFormat:@"#,##0.###"]; 
NSLog(@"%@",[fmt stringFromNumber:[NSNumber numberWithFloat:35.424252]]); 
NSLog(@"%@",[fmt stringFromNumber:[NSNumber numberWithFloat:21.3]]); 
NSLog(@"%@",[fmt stringFromNumber:[NSNumber numberWithFloat:10392425]]); 

Формат Чак дал вам поддерживает до 3-х знаков после запятой. Если у вас есть число с менее 3, они просто не отображаются. Чак также прав, что вы хотите взглянуть на руководство по кодированию номеров в формате Unicode, это бесценно для проблем с форматированием номера.

1

Формат для этого будет @"#,##0.###". Взгляните на the Unicode number format guide для полного объяснения того, как построить строки формата.

(Также обратите внимание, что это работает правильно в локалях, где запятые и точки перепутаны, или там, где другие символы используются.)

+0

Можете ли вы показать мне полный код цели с помощью NSNumberFormatter? И обратите внимание, что это не всегда 3 десятичных разряда, и даже не всегда есть десятичное число. – CodeGuy

Смежные вопросы