NSNumberFormatter数字的格式化

摘要:
与著名的NSDateFormatter相比,NSNumberFormatter似乎认识的人并不多。实际上,您还可以通过NSNumberFormatter设置NSNumber输出的格式。

在iOS中我们可以通过NSDateFormatter来设置输出NSDate的格式。相比NSDateFormatter的大名鼎鼎,NSNumberFormatter好像知道的人就不多了。其实通过NSNumberFormatter,同样可以设置NSNumber输出的格式。例如如下代码:

        NSNumberFormatter *formatter = [[NSNumberFormatter allocinit];

        formatter.numberStyle = NSNumberFormatterDecimalStyle;

        NSString *string = [formatter stringFromNumber:[NSNumber numberWithInt:123456789]];

        NSLog(@"Formatted number string:%@",string);

    输出结果为:[1223:403] Formatted number string:123,456,789

其中NSNumberFormatter类有个属性numberStyle,它是一个枚举型,设置不同的值可以输出不同的数字格式。该枚举包括:

enum {

    NSNumberFormatterNoStyle = kCFNumberFormatterNoStyle,

    NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle,

    NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle,

    NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle,

    NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle,

    NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyle

};

typedef NSUInteger NSNumberFormatterStyle;

各个枚举对应输出数字格式的效果如下:

[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:一亿二千三百四十五万六千七百八十九

其中第三项和最后一项的输出会根据系统设置的语言区域的不同而不同。

免责声明:文章转载自《NSNumberFormatter数字的格式化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在Mac下修改照片日期及时间如果在html触发点击事件不起作用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Typescript语法简单汇总

1、Typescript原始数据类型: string number boolean null undefined enum symbol 空值一般采用void表示,void可以表示变量,也可以表示函数返回值。 2、Typescript中的任意值: 任意值(any)用来表示允许赋值为任意类型。 申明一个变量为任意值后,对它的任何操作,返回的内容的类型都是任意...

SpringBoot 获取前端页面参数的集中方式总结

SpringBoot的一个好处就是通过注解可以轻松获取前端页面的参数,之后尅将参数经过一系列处理传送到后台数据库,前端时间正好用到。大致分为一下几种: 1.指定前端URL请求参数名称与方法名称一致,这种方式简单来说就是URL请求格式中参数需要与方法的参数名称对应上,举个例子,这么一个URL请求:http://localhost:8080/0919/tes...

Java 权限框架 Shiro 实战一:理论基础

Apache Shiro 官网地址:http://shiro.apache.org/ Apache Shiro is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and sessio...

UpdatePanel控件使用详解(二)

用编程的方法控制UpdatePanel的更新 于UpdatePanel,我们也可以使用编程的方法来控制它的更新,可以通过ScriptManager的RegisterAsyncPostBackControl()方法注册一个异步提交的控件,并且调用UpdatePanel的Update()方法来让它更新。再次用我在前面的文章中用到的一个无聊的时间更新例子来看一下,...

关于Android中的三级缓存

三级缓存的提出就是为了提升用户体验。当我们第一次打开应用获取图片时,先到网络去下载图片,然后依次存入内存缓存,磁盘缓存,当我们再一次需要用到刚才下载的这张图片时,就不需要再重复的到网络上去下载,直接可以从内存缓存和磁盘缓存中找,由于内存缓存速度较快,我们优先到内存缓存中寻找该图片,如果找到则运用,如果没有找到(内存缓存大小有限),那么我们再到磁盘缓存中去找...

反射+枚举+freemarker,自动生成实体类,自动建表建索引(二)之建表建索引,注解和DatabaseMetaData 获取信息

接上一篇博文 反射+枚举+freemarker,自动生成实体类,自动建表建索引(一)之生成实体类,枚举详解,这篇博文介绍自动建表。 用反射+枚举+freemarker,自己实现的自动生成实体类和自动建立数据表建索引。用enum枚举作为数据表的配置文件,1个枚举就是1张表,根据枚举类,自动生成实体类,和自动建表建索引。 主要步骤和 上一篇博文差不多,就是...