NSNumberFormatter 數字格式化輸出

最近搞數據展現,須要將數字展現爲用千分號分割的字符串,讓我好找呀,結果仍是被我找到了。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

相關文章
相關標籤/搜索