revision Вот лучший способ, используя NSNumberFormatter:
Сначала создайте и настройте средство форматирования следующим образом:
NSNumberFormatter * formatter = [[ NSNumberFormatter alloc ] init ] ;
[ formatter setFormatWidth:20 ] ;
[ formatter setPaddingCharacter:@" " ] ;
[ formatter setFormatterBehavior:NSNumberFormatterBehavior10_4 ] ;
[ formatter setNumberStyle:NSNumberFormatterDecimalStyle ] ;
[ formatter setMinimumFractionDigits:2 ] ;
[ formatter setMaximumFractionDigits:2 ] ;
После того, как вы создали средство форматирования, ваш код станет таким:
strF = [ NSString stringWithFormat:@"First: %@ Second: %@", [ formatter stringFromNumber:value1 ], [ formatter stringFromNumber:value2 ] ] ;
Вы получите разделители (тысячи) (в текущей локали) и т. д.
Я бы создал средство форматирования в методе класса (что-то вроде +numberFormatter
или в блоке dispatch_once
). Вы даже можете добавить его в NSNumberFormatter через категорию и получить что-то вроде +[ NSNumberFormatter mySharedFormatter ]
Вы можете использовать спецификатор ширины поля. Он делает это:
NSString * value1String = ... from NSNumberFormatter to get commas inserted ;
[ NSString stringWithFormat:@"First: %20s Second: %0.2f", [ value1String UTF8String ], value2 ]
Где "20" - ширина столбца. (Замените желаемой шириной). Есть и другие варианты, такие как выравнивание по правому краю и т. д. Чтобы узнать больше, выполните man printf
.
Если вы хотите добавить запятые, NSNumberFormatter сможет это сделать.
(На самом деле, вы, вероятно, тоже хотите, чтобы ваши десятичные дроби выровнялись, верно? Вы могли бы попробовать % 20.2f
)
person
nielsbot
schedule
06.06.2013