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 для полного объяснения того, как создавать строки формата.
(Также обратите внимание, что это работает правильно в местах, где запятые и точки поменялись местами, или где используются другие символы.)