最近搞数据展现,须要将数字展现为用千分号分割的字符串,让我好找呀,结果仍是被我找到了。spa
在iOS中咱们能够经过NSDateFormatter来设置输出NSDate的格式。相比NSDateFormatter的大名鼎 鼎,NSNumberFormatter好像知道的人就很少了。其实经过NSNumberFormatter,一样能够设置NSNumber输出的格式。 例如以下代码:code
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.numberStyle = NSNumberFormatterDecimalStyle; NSString *string = [formatter stringFromNumber:[NSNumber numberWithInt:123456789]]; NSLog(@"Formatted number string:%@",string); 输出结果为:[1223:403] Formatted number string:123,456,789
其中NSNumberFormatter类有个属性numberStyle,它是一个枚举型,设置不一样的值能够输出不一样的数字格式。该枚举包括:
enum {
NSNumberFormatterNoStyle = kCFNumberFormatterNoStyle,
NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle,
NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle,
NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle,
NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle,
NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyle
};
typedef NSUInteger NSNumberFormatterStyle;
各个枚举对应输出数字格式的效果以下:
[1243:403] Formatted number string:123456789
[1243:403] Formatted number string:123,456,789
[1243:403] Formatted number string:¥123,456,789.00
[1243:403] Formatted number string:-539,222,988%
[1243:403] Formatted number string:1.23456789E8
[1243:403] Formatted number string:一亿二千三百四十五万六千七百八十九 orm
其中第三项和最后一项的输出会根据系统设置的语言区域的不一样而不一样。blog