介绍

NSNumberFormatter 应该可以满足你对数据形式的一般需求,值得了解一下.

    NSNumber *num1 = [NSNumber numberWithDouble:1234567.8369];

    // ==================== 类方法 ====================

    // 四舍五入的整数
NSString *numberNoStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterNoStyle]; // 小数形式
NSString *numberDecimalStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterDecimalStyle]; // 货币形式 -- 本地化
NSString *numberCurrencyStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterCurrencyStyle]; // 百分数形式
NSString *numberPercentStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterPercentStyle]; // 科学计数
NSString *numberScientificStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterScientificStyle]; // 朗读形式 -- 本地化
NSString *numberSpellOutStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterSpellOutStyle]; // 序数形式 -- 本地化
NSString *numberOrdinalStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterOrdinalStyle]; // 货币形式 ISO -- 本地化
NSString *numberCurrencyISOStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterCurrencyISOCodeStyle]; // 货币形式 -- 本地化
NSString *numberCurrencyPluralStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterCurrencyPluralStyle]; // 会计计数 -- 本地化
NSString *numberCurrencyAccountingStyleStr = [NSNumberFormatter localizedStringFromNumber:num1 numberStyle:NSNumberFormatterCurrencyAccountingStyle]; NSLog(@"No Style = %@",numberNoStyleStr); // No Style = 1234568
NSLog(@"Decimal Style = %@",numberDecimalStyleStr); // Decimal Style = 1,234,567.837
NSLog(@"Currency Style = %@",numberCurrencyStyleStr); // Currency Style = $1,234,567.84
NSLog(@"Percent Style = %@",numberPercentStyleStr); // Percent Style = 123,456,784%
NSLog(@"Scientific Style = %@",numberScientificStyleStr); // Scientific Style = 1.2345678369E6
// Spell Out Style = one million two hundred thirty-four thousand five hundred sixty-seven point eight three six nine
NSLog(@"Spell Out Style = %@",numberSpellOutStyleStr);
NSLog(@"Ordinal Style = %@",numberOrdinalStyleStr); // Ordinal Style = 1,234,568th
NSLog(@"Currency ISO Style = %@",numberCurrencyISOStyleStr); // Currency ISO Style = USD1,234,567.84
NSLog(@"Currency plural Style = %@",numberCurrencyPluralStyleStr); // Currency plural Style = 1,234,567.84 US dollars
NSLog(@"Currency accounting Style = %@",numberCurrencyAccountingStyleStr); // Currency accounting Style = $1,234,567.84 // ==================== 定制 ==================== NSNumberFormatter *numberFormatter = [NSNumberFormatter new]; numberFormatter.numberStyle = NSNumberFormatterDecimalStyle; // 格式宽度
numberFormatter.formatWidth = 15; // 填充符
numberFormatter.paddingCharacter = @"?"; // 填充位置
numberFormatter.paddingPosition = kCFNumberFormatterPadBeforeSuffix;
numberFormatter.positiveSuffix = @"元"; NSLog(@"%@",[numberFormatter numberFromString:@"10000000元"]); // 10000000 // 缩放因子,你可以将一个数缩放指定比例,然后给其添加后缀,如传入一个3000,你希望表示为3千,就要用到这个属性
// 防止影响后面的测试,故注掉
// numberFormatter.multiplier = @1000; // NSLog(@"%@千",[numberFormatter numberFromString:@"1000"]); // 1千 // numberFormatter.multiplier = @0.001;
// numberFormatter.positiveSuffix = @"千";
// NSLog(@"%@",[numberFormatter stringFromNumber:@10000]); // 10千 // 机制不明确,负号,正号
// numberFormatter.negativeFormat = @"^";
// numberFormatter.positiveFormat = @"~0"; // 貌似没什么用
numberFormatter.allowsFloats = NO;
numberFormatter.alwaysShowsDecimalSeparator = NO;
numberFormatter.maximum = @1000;
numberFormatter.minimum = @100; // 小数点样式
numberFormatter.decimalSeparator = @"."; // 零的样式
numberFormatter.zeroSymbol = @"-"; // 前缀和后缀
numberFormatter.positivePrefix = @"!";
numberFormatter.positiveSuffix = @"元";
numberFormatter.negativePrefix = @"@";
numberFormatter.negativeSuffix = @"亏"; // 指定符号,与我们在前面类方法中说明的一致
NSLog(@"货币代码%@",numberFormatter.currencyCode); // 货币代码USD
NSLog(@"货币符号%@",numberFormatter.currencySymbol); // 货币符号$
NSLog(@"国际货币符号%@",numberFormatter.internationalCurrencySymbol); // 国际货币符号USD
NSLog(@"百分比符号%@",numberFormatter.percentSymbol); // 百分比符号%
NSLog(@"千分号符号%@",numberFormatter.perMillSymbol); // 千分号符号‰
NSLog(@"减号符号%@",numberFormatter.minusSign); // 减号符号-
NSLog(@"加号符号%@",numberFormatter.plusSign); // 加号符号+
NSLog(@"指数符号%@",numberFormatter.exponentSymbol); // 指数符号E // 整数最多位数
numberFormatter.maximumIntegerDigits = 10; // 整数最少位数
numberFormatter.minimumIntegerDigits = 2; // 小数位最多位数
numberFormatter.maximumFractionDigits = 3; // 小数位最少位数
numberFormatter.minimumFractionDigits = 1; // 数字分割的尺寸
numberFormatter.groupingSize = 4; // 除了groupingSize决定的尺寸外,其他数字位分割的尺寸
numberFormatter.secondaryGroupingSize = 2; // 最大有效数字个数
numberFormatter.maximumSignificantDigits = 12; // 最少有效数字个数
numberFormatter.minimumSignificantDigits = 3; NSLog(@"正数%@,负数%@",[numberFormatter stringFromNumber:@(+12135230.2346)],[numberFormatter stringFromNumber:@(-12135231.2346)]); // 正数!12,13,5230.2346元,负数@12,13,5231.2346亏
NSLog(@"零 = %@",[numberFormatter stringFromNumber:@(0)]); // 零 = - // 舍入值,比如以10为进位值,那么156就进位为160,154进位为150
numberFormatter.roundingIncrement = @10; // 舍入方式
numberFormatter.roundingMode = kCFNumberFormatterRoundHalfUp;
NSLog(@"%@",[numberFormatter stringFromNumber:@123456.7890]); // !12,3460元
文/刘大帅(简书作者)
原文链接:http://www.jianshu.com/p/817029422a72
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

【iOS】NSNumberFormatter的更多相关文章

  1. 【IOS】将一组包含中文的数据按照#ABC...Z✿分组

    上一篇文章[IOS]模仿windowsphone列表索引控件YFMetroListBox里面 我们一步步的实现了WindowsPhone风格的索引. 但是有没有发现,如果你要实现按照字母排序,你还得自 ...

  2. 【IOS】模仿windowsphone列表索引控件YFMetroListBox

    有没有觉得UITableView自带的右侧索引很难用,我一直觉得WindowsPhone中的列表索引非常好用. 所以呢,我们来实现类似Windows Phone中的列表索引(这就是信仰). 最终实现效 ...

  3. 【IOS】自定义可点击的多文本跑马灯YFRollingLabel

    需求 项目中需要用到跑马灯来仅展示一条消息,长度合适则不滚动,过长则循环滚动. 虽然不是我写的,但看了看代码,是在一个UIView里面放入两个UILabel, 在前一个快结束的时候,另一个显示.然而点 ...

  4. 【iOS】在Swift中使用JSONModel

    前言 首先所有的Model还是使用oc来写——看到这一句是不是想关网页了- - #,在swift里面直接写一直报错所以就将就用oc来写了,这里主要是分享一下搭配Alamofire使用的经验. 声明 欢 ...

  5. 【iOS】使用safari对webview进行调试

    [iOS]使用safari对webview进行调试 在web开发的过程中,抓包.调试页面样式.查看请求头是很常用的技巧.其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到ma ...

  6. 【iOS】7.4 定位服务->2.1.1 定位 - 官方框架CoreLocation: 请求用户授权

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...

  7. 【iOS】7.4 定位服务->2.1.2 定位 - 官方框架CoreLocation: CLLocationManager(位置管理器)

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...

  8. 【iOS】7.4 定位服务->2.1.3.1 定位 - 官方框架CoreLocation 功能1:地理定位

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...

  9. 【iOS】7.4 定位服务->2.1.3.2 定位 - 官方框架CoreLocation 功能2:地理编码和反地理编码

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...

随机推荐

  1. python中类的三种属性

    python中的类有三种属性:字段.方法.特性 字段又分为动态字段和静态字段 类 class Province: #静态字段 memo = 'listen' #动态字段 def __init__(se ...

  2. poj2833

    //poj2833优先队列.数据量太大,而且没有必要全部排序. //优先队列 //* #include<iterator> #include <stdio.h> #includ ...

  3. RadioGroup实现导航栏

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. 游戏编程技巧 - Subclass Sandbox

    Subclass Sandbox 使用场景 你正在开发一款类似LOL的游戏,里面有许多英雄角色,你决定把这些英雄类交给小弟们实现.因为在这些英雄中,释放放技能时,有的要使用粒子系统造成炫酷的效果,有的 ...

  5. Autocad 2012 win7(64位)启动时一直卡在acmgd.dll处的解决方案

    安装Autocad 2012后,激活成功后,无法正常启动,一直卡在加载acmgd.dll 通过Procmon监控后发现加载C:\Windows\fonts\AdobeFnt11.lst处出错, 通过命 ...

  6. MBR结构和DBR结构

  7. 用 string 进行插入、替代、查找输出下标等操作

    string s; s = "; string::iterator it; it = s.begin();//让s指向第一个元素 cout << s; system(" ...

  8. 日常办公工具利器 notepad++

    日常办公工具利器 notepad++ 文本内容比较 Notepad++ https://notepad-plus-plus.org/ http://jingyan.baidu.com/article/ ...

  9. 广州PostgreSQL用户会技术交流会小记 2015-9-19

    广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...

  10. 【腾讯Bugly干货分享】美团大众点评 Hybrid 化建设

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/rNGD6SotKoO8frmxIU8-xw 本期 T ...