- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章iOS中NSNumberFormatter的介绍与用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
前言 。
iOS中NSDateFormatter用的范围一般来说比较广泛,不过相对于处理数字而言,很少用到NSNumberFormatter,NSNumberFormatter中有很多枚举类型,会为实际开发节省时间. 。
NSNumberFormatter可以用来处理NSString和NSNumber之间的转化,可以满足基本的数字形式的转化。下面话不多说了,来一起看看详细的介绍吧 。
1:使用+ localizedStringFromNumber:numberStyle:本地化方法格式化NSNumber到NSString 。
四舍五入到整数 。
1
2
3
|
NSNumber *number = @(123423.5563);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterNoStyle];
// 123424
|
货币数字形式 。
1
2
3
|
NSNumber *number = @(12342323.5563);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterDecimalStyle];
// 12,342,323.556
|
货币的形式,带本地化的货币符号 。
1
2
3
|
NSNumber *number = @(12342323.5563);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyStyle];
// ¥12,342,323.56
|
百分数形式,并且四舍五入到百分比的整数部分 。
1
2
3
|
NSNumber *number = @(12342323.5563);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterPercentStyle];
// 1,234,232,356%
|
科学计数形式 。
1
2
|
NSNumber *number = @(12342323.55665); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterScientificStyle];
// 1.234232355665E7
|
本地化拼写形式 。
1
2
3
|
NSNumber *number = @(12342323.55665);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterSpellOutStyle];
// 三十四万二千三百二十三点五五六六五
|
序数形式 。
1
2
3
|
NSNumber *number = @(12342323.55665);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterOrdinalStyle];
// 第1234,2324
|
货币形式 显示ISO分配的货币符号 。
1
2
3
|
NSNumber *number = @(12342323.55665);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyISOCodeStyle];
// CNY12,342,323.56
|
货币形式 。
1
2
3
|
NSNumber *number = @(12342323.55665);
NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyPluralStyle];
// 12,342,323.56人民币
|
会计形式 。
1
2
3
|
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中所介绍的 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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元
|
百分比样式展示 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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: ٪۴۰۰."
|
总结 。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我的支持.
原文链接:https://www.jianshu.com/p/95952b145a8e 。
最后此篇关于iOS中NSNumberFormatter的介绍与用法的文章就讲到这里了,如果你想了解更多关于iOS中NSNumberFormatter的介绍与用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
这个问题在这里已经有了答案: Inappropriate Expected declaration error (1 个回答) 关闭 7 年前。 我正在阅读我的 swift 书并边做边建。我在使用这
这是我的代码片段,我不知道如何舍入双数。 double m = [tmpProduct.msrp doubleValue] ; double d = [tmpProduct.discountPric
它看起来像是NSNumberFormatter 的 方法,用于设置自定义格式化程序。 setFormat: 在 iPhone 上不可用... 所以这......使我的应用程序崩溃: NSNumberF
我在 NSTableView 的单元格中使用了 NSNUmberFormatter。这个 NSNUmberFormatter 是从 IB 库中拖出来并放入 TableView 单元格中的。然后从检查器
我对 NSNumberFormatter 的使用感到完全困惑。这应该非常简单,但我无法让它工作。 我想设置一个 NSTextField 以允许输入带小数点或不带小数点的十进制数字。这是我认为可行的:
我想将 NSDecimalNumber 格式化为美元值(1.50 美元),但我遇到了崩溃。 这是我的方法: +(NSString*) formatPriceForUser:(NSDecimalNumb
以下代码无法正常工作: //[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; formatter.maximumFractionDig
我正在开发一个适用于 double 的计算器应用程序,然后当您按下等于时,操作是使用 double 完成的,然后切换到 NSNumberFormatter。我的问题是当用户想要在屏幕上的答案中添加(或
有人问过类似的问题,但我发现提供的解决方案不适用于最新的 iOS SDK,或者不完全适用于这种特殊情况。 我使用 NSNotification 调用一个方法,该方法在 UILabel 中使用分组符号格
我的应用程序中有一个价格字段。我使用了 NSNumberFormatter 并且我正在使用核心数据存储和检索值。它在模拟器上运行良好,但设备上没有显示任何内容。 我还显示了在模拟器上运行正常但在设备上
我的问题是我目前使用的是 NSNumberFormatter 和 NSNumberFormatterDecimalStyle。我使用它是因为我想让逗号将每三个数字的数字隔开,就像当我把它变成一个字符串
我将收到美国 5.00 美元、日本 5.00 日元、欧洲 5.00 欧元等。但我不想要那样。我想在每个地区都获得相同的东西:美国 5.00 美元,日本 5.00 美元,欧洲 5.00 美元。这是我尝试
我有一个字符串,其货币格式为本地货币。例如10000 丹麦克朗 将 (10.000,00)当转换为双倍值时,它只读为 10。我试过这个片段 NSString * locale ; if(loc
我的代码是: NSString *price = @"0.29000"; NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; [f set
我正在制作一个包含多个文本字段的应用程序。我希望当用户在文本字段中输入数字时,编辑结束时自动添加百分比符号。现在,我知道如何做到这一点的唯一方法是将文本值转换为 float ,然后使用 NSNumbe
我已经设置了一个 NSNumberFormatter 如下: formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberSty
我需要格式化数字和货币符号,我使用以下代码。我面临的问题是该数字四舍五入为 34.80,这仅适用于某些货币,如果我在下面的代码中将货币代码更改为“INR”,结果显示的金额没有四舍五入。 NSDecim
处理整数、NSString 和 NSNumberFormatter 的最佳方法是什么? 我有一个带有 UITextField 的应用程序,用户可以在其中输入数字。通过 UITextField 中的每一
我正在尝试获取 NSNumberFormatter 来显示货币。我有两个 UILabels,两者都由相同的 NSNumberFormatter 格式化,但第一个被括号包围。这是我的代码: NS
我有一个奇怪的问题。它似乎只出现在测试者的 iPhone 5s 上。它可以在运行最新 iOS (8.3) 的 iPhone 5、6 和 6 plus 上正常运行。 这是代码 -(NSString *)
我是一名优秀的程序员,十分优秀!