修订这里有一个更好的方法,使用 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
)