NumberFormatter - ObjectiveC

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

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

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

Спасибо!


person CodeGuy    schedule 22.01.2011    source источник


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

person Joshua Smith    schedule 22.01.2011

Формат для этого будет @"#,##0.###". Полное объяснение того, как для построения строк формата.

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

person Chuck    schedule 22.01.2011
comment
Можете ли вы показать мне полный код Objective-C с помощью NSNumberFormatter? И обратите внимание, что это не всегда 3 десятичных знака и даже не всегда десятичный разделитель. - person CodeGuy; 22.01.2011