iOS中NSNumberFormatter的介绍与用法
前言
iOS中NSDateFormatter用的范围一般来说比较广泛,不过相对于处理数字而言,很少用到NSNumberFormatter,NSNumberFormatter中有很多枚举类型,会为实际开发节省时间.
NSNumberFormatter可以用来处理NSString和NSNumber之间的转化,可以满足基本的数字形式的转化。下面话不多说了,来一起看看详细的介绍吧
1:使用+localizedStringFromNumber:numberStyle:本地化方法格式化NSNumber到NSString
四舍五入到整数
NSNumber*number=@(123423.5563); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterNoStyle]; //123424
货币数字形式
NSNumber*number=@(12342323.5563); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterDecimalStyle]; //12,342,323.556
货币的形式,带本地化的货币符号
NSNumber*number=@(12342323.5563); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterCurrencyStyle]; //¥12,342,323.56
百分数形式,并且四舍五入到百分比的整数部分
NSNumber*number=@(12342323.5563); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterPercentStyle]; //1,234,232,356%
科学计数形式
NSNumber*number=@(12342323.55665);NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterScientificStyle]; //1.234232355665E7
本地化拼写形式
NSNumber*number=@(12342323.55665); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterSpellOutStyle]; //三十四万二千三百二十三点五五六六五
序数形式
NSNumber*number=@(12342323.55665); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterOrdinalStyle]; //第1234,2324
货币形式显示ISO分配的货币符号
NSNumber*number=@(12342323.55665); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterCurrencyISOCodeStyle]; //CNY12,342,323.56
货币形式
NSNumber*number=@(12342323.55665); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterCurrencyPluralStyle]; //12,342,323.56人民币
会计形式
NSNumber*number=@(12342323.55665); NSString*numStr1=[NSNumberFormatterlocalizedStringFromNumber:numbernumberStyle:NSNumberFormatterCurrencyAccountingStyle]; //¥12,342,323.56
2:初始化NSNumberFormatter对象,使用-(NSNumber*)numberFromString:(NSString*)string;定制格式化NSNumber到NSString
不指定任何样式(numStyle),默认(NSNumberFormatterNoStyle)四舍五入,其他的样式同以上1中所介绍的
NSNumber*number=@(12342323.55665); NSNumberFormatter*formatter=[[NSNumberFormatteralloc]init]; //指定货币样式 formatter.numberStyle=NSNumberFormatterDecimalStyle; //自定义样式 [formattersetPositiveFormat:@"###0.###"]; //数字之间的分隔符 [formattersetDecimalSeparator:@":"]; [formattersetCurrencyDecimalSeparator:@","]; //前缀符号 formatter.positivePrefix=@"!"; //后缀符号 formatter.positiveSuffix=@"元"; //间隙中添加的符号 formatter.paddingCharacter=@"?"; //格式的宽度 formatter.formatWidth=15; //最少展示两位小数 formatter.minimumFractionDigits=2; //最多展示三位整数 formatter.maximumIntegerDigits=5; NSString*numStr=[formatterstringFromNumber:number]; //??????!323:557元
百分比样式展示
NSNumberFormatter*numberFormatter=[[NSNumberFormatteralloc]init]; [numberFormattersetPositiveFormat:@"0.00%;0.00%;-0.00%"]; NSLog(@"%@",[numberFormatterstringFromNumber:@4.0]); //Output:"400.00%". //本地化 NSNumberFormatter*numberFormatter=[[NSNumberFormatteralloc]init]; [numberFormattersetNumberStyle:NSNumberFormatterPercentStyle]; NSLocale*usLocale=[[NSLocalealloc]initWithLocaleIdentifier:@"en_US"];[numberFormattersetLocale:usLocale]; NSLog(@"en_US:%@",[numberFormatterstringFromNumber:@4.0]); //Output:"en_US:400%". NSLocale*faLocale=[[NSLocalealloc]initWithLocaleIdentifier:@"fa_IR"]; [numberFormattersetLocale:faLocale]; NSLog(@"fa_IR:%@",[numberFormatterstringFromNumber:@4.0]); //Output:"fa_IR:٪۴۰۰."
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。