IOS-NSNumberFormatter--數字的格式化

在iOS中我們可以通過NSDateFormatter來設置輸出NSDate的格式。相比NSDateFormatter的大名鼎鼎,NSNumberFormatter好像知道的人就不多了。其實通過NSNumberFormatter,同樣可以設置NSNumber輸出的格式。例如如下代碼:

        NSNumberFormatter *formatter = [[NSNumberFormatter allocinit];

        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:一億二千三百四十五萬六千七百八十九

其中第三項和最後一項的輸出會根據系統設置的語言區域的不同而不同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章