數(shù)字千分位需求iOS中還是有專門的處理函數(shù)
long double orderSum = [[NSString stringwithFormant:@"3.0315E7"]? floatValue];
NSNumberFormatter * formatter = [[NSNumberFormatter alloc]init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
NSString * string = [formatter stringFromNumber:[NSNumber numberWithDouble:orderSum]];
此時(shí)string輸出的格式就是30,315,000
下面是網(wǎng)絡(luò)上的原文枷邪,講的更詳細(xì)一點(diǎn)
在iOS中我們可以通過NSDateFormatter來設(shè)置輸出NSDate的格式。相比NSDateFormatter的大名鼎鼎张足,NSNumberFormatter好像知道的人就不多了。其實(shí)通過NSNumberFormatter,同樣可以設(shè)置NSNumber輸出的格式盲憎。例如如下代碼:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
NSString *string = [formatter stringFromNumber:[NSNumber numberWithInt:123456789]];
NSLog(@"Formatted number string:%@",string);
輸出結(jié)果為:[1223:403] Formatted number string:123,456,789
其中NSNumberFormatter類有個(gè)屬性numberStyle幼驶,它是一個(gè)枚舉型汇鞭,設(shè)置不同的值可以輸出不同的數(shù)字格式凄敢。該枚舉包括:
enum {
NSNumberFormatterNoStyle = kCFNumberFormatterNoStyle,
NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle,
NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle,
NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle,
NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle,
NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyle
};
typedef NSUInteger NSNumberFormatterStyle;
各個(gè)枚舉對(duì)應(yīng)輸出數(shù)字格式的效果如下:
[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:一億二千三百四十五萬六千七百八十九
其中第三項(xiàng)和最后一項(xiàng)的輸出會(huì)根據(jù)系統(tǒng)設(shè)置的語言區(qū)域的不同而不同碌冶。