NumberFormatter - ObjectiveC

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

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

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

Спасибо!

2 ответа

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

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

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

Другие вопросы по тегам