NumberFormatter - ObjectiveC - PullRequest
       11

NumberFormatter - ObjectiveC

0 голосов
/ 22 января 2011

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

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

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

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 января 2011
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, он просто не появится.Чак также прав, что вы хотите взглянуть на руководство по формату чисел в Юникоде, оно неоценимо для проблем форматирования чисел.

1 голос
/ 22 января 2011

Формат для этого будет @"#,##0.###".Взгляните на Руководство по форматированию чисел в Юникоде для полного объяснения того, как создавать строки формата.

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

...