当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS中NSNumberFormatter的介绍与用法

iOS中NSNumberFormatter的介绍与用法

2019年07月23日  | 移动技术网IT编程  | 我要评论

海鲜店加盟,风之刀分集剧情,女团bambino

前言

ios中nsdateformatter用的范围一般来说比较广泛,不过相对于处理数字而言,很少用到nsnumberformatter,nsnumberformatter中有很多枚举类型,会为实际开发节省时间.

nsnumberformatter可以用来处理nsstring和nsnumber之间的转化,可以满足基本的数字形式的转化。下面话不多说了,来一起看看详细的介绍吧

1:使用+ localizedstringfromnumber:numberstyle:本地化方法格式化nsnumber到nsstring

四舍五入到整数

 nsnumber *number = @(123423.5563);
 nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformatternostyle];
// 123424

货币数字形式

 nsnumber *number = @(12342323.5563);
 nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformatterdecimalstyle];
 // 12,342,323.556 

货币的形式,带本地化的货币符号

nsnumber *number = @(12342323.5563);
 nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformattercurrencystyle];
// ¥12,342,323.56

百分数形式,并且四舍五入到百分比的整数部分

nsnumber *number = @(12342323.5563);
nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformatterpercentstyle];
// 1,234,232,356%

科学计数形式

nsnumber *number = @(12342323.55665); nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformatterscientificstyle];
// 1.234232355665e7

本地化拼写形式

nsnumber *number = @(12342323.55665);
nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformatterspelloutstyle];
// 三十四万二千三百二十三点五五六六五

序数形式

nsnumber *number = @(12342323.55665);
nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformatterordinalstyle];
// 第1234,2324

货币形式 显示iso分配的货币符号

nsnumber *number = @(12342323.55665);
nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformattercurrencyisocodestyle];
// cny12,342,323.56

货币形式

nsnumber *number = @(12342323.55665);
 nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformattercurrencypluralstyle];
// 12,342,323.56人民币

会计形式

nsnumber *number = @(12342323.55665);
nsstring *numstr1 = [nsnumberformatter localizedstringfromnumber:number numberstyle:nsnumberformattercurrencyaccountingstyle];
// ¥12,342,323.56

2:初始化nsnumberformatter对象,使用- (nsnumber *)numberfromstring:(nsstring *)string;定制格式化nsnumber到nsstring

不指定任何样式(numstyle),默认(nsnumberformatternostyle)四舍五入,其他的样式同以上1中所介绍的

 nsnumber *number = @(12342323.55665);
 nsnumberformatter *formatter = [[nsnumberformatter alloc]init];
// 指定货币样式
 formatter.numberstyle = nsnumberformatterdecimalstyle;
// 自定义样式
 [formatter setpositiveformat:@"###0.###"];
// 数字之间的分隔符
 [formatter setdecimalseparator:@":"];
 [formatter setcurrencydecimalseparator:@","];
// 前缀符号
 formatter.positiveprefix = @"!";
// 后缀符号
 formatter.positivesuffix = @"元";
// 间隙中添加的符号
 formatter.paddingcharacter = @"?";
// 格式的宽度
 formatter.formatwidth = 15;
// 最少展示两位小数
 formatter.minimumfractiondigits = 2;
// 最多展示三位整数
 formatter.maximumintegerdigits = 5;
 nsstring *numstr = [formatter stringfromnumber:number];
// ??????!323:557元

百分比样式展示

nsnumberformatter *numberformatter = [[nsnumberformatter alloc] init];
[numberformatter setpositiveformat:@"0.00%;0.00%;-0.00%"];
nslog(@"%@", [numberformatter stringfromnumber:@4.0]);
// output: "400.00%".

// 本地化
nsnumberformatter *numberformatter = [[nsnumberformatter alloc] init];
[numberformatter setnumberstyle:nsnumberformatterpercentstyle];
 
nslocale *uslocale = [[nslocale alloc] initwithlocaleidentifier:@"en_us"];[numberformatter setlocale:uslocale];
nslog(@"en_us: %@", [numberformatter stringfromnumber:@4.0]);
// output: "en_us: 400%".
 
nslocale *falocale = [[nslocale alloc] initwithlocaleidentifier:@"fa_ir"];
[numberformatter setlocale:falocale];
nslog(@"fa_ir: %@", [numberformatter stringfromnumber:@4.0]);
// output: "fa_ir: ٪۴۰۰."

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对移动技术网的支持。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网