iOS中数字的格式化

来源:互联网 发布:黑白点网络 编辑:程序博客网 时间:2024/05/18 03:20
在iOS中我们可以通过NSDateFormatter来设置输出NSDate的格式。相比NSDateFormatter的大名鼎鼎,NSNumberFormatter好像知道的人就不多了。其实通过NSNumberFormatter,同样可以设置NSNumber输出的格式。例如如下代码:

      NSNumberFormatter *formatter= [[NSNumberFormatter allocinit];

      formatter.numberStyle NSNumberFormatterDecimalStyle;

      NSString *string =[formatter stringFromNumber:[NSNumber numberWithInt:123456789]];

      NSLog(@"Formatted numberstring:%@",string);

   输出结果为:[1223:403] Formatted numberstring:123,456,789

其中NSNumberFormatter类有个属性numberStyle,它是一个枚举型,设置不同的值可以输出不同的数字格式。该枚举包括:

 

enum {

   NSNumberFormatterNoStylekCFNumberFormatterNoStyle,

   NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle,

   NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle,

   NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle,

   NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle,

   NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyle

};

typedef NSUInteger NSNumberFormatterStyle;

各个枚举对应输出数字格式的效果如下:

 

[1243:403] Formatted numberstring:123456789

 

[1243:403] Formatted numberstring:123,456,789

 

[1243:403] Formattednumber string:123,456,789.00

 

[1243:403] Formatted numberstring:-539,222,988%

 

[1243:403] Formattednumber string:1.23456789E8

 

[1243:403] Formatted numberstring:一亿二千三百四十五万六千七百八十九

其中第三项和最后一项的输出会根据系统设置的语言区域的不同而不同。

原创粉丝点击