之前number 转string时候调用stringValue,后来发现未完全转

NSNumber * a_num = [NSNumber numberWithInteger: ];

NSString *value_str = [num stringValue];(不推荐)

官方推荐用这个方法, localizedStringFromNumber

NSString *num_str = [NSNumberFormatter localizedStringFromNumber:num numberStyle:NSNumberFormatterNoStyle];

通过NSNumberFormatter,可以设置NSNumber输出的格式。例如如下代码:

         NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];

         formatter.numberStyle = NSNumberFormatterDecimalStyle;

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

         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  //全拼

 y    

     NSNumberFormatterRoundCeiling = kCFNumberFormatterRoundCeiling,//四舍五入,原值2.7999999999,直接输出3
NSNumberFormatterRoundFloor = kCFNumberFormatterRoundFloor,//保留小数输出2.8 正是想要的
NSNumberFormatterRoundDown = kCFNumberFormatterRoundDown,//加上了人民币标志,原值输出¥2.8
NSNumberFormatterRoundUp = kCFNumberFormatterRoundUp,//本身数值乘以100后用百分号表示,输出280%
NSNumberFormatterRoundHalfEven = kCFNumberFormatterRoundHalfEven,//原值表示,输出 NSNumberFormatterRoundHalfDown = kCFNumberFormatterRoundHalfDown,//原值的中文表示,输出二点七九九九。。。。
NSNumberFormatterRoundHalfUp = kCFNumberFormatterRoundHalfUp //原值中文表示,输出第三
}; 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:一亿二千三百四十五万六千七百八十九

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

NSNumber 转 NSString的更多相关文章

  1. iOS NSNumber转化NSString之description

    我们经常需要把一个数字转成字符串,当你不需要配合其他字符串的时候可以用description. /** description属于NSObject 值是NSNumber时候,不用stringWithF ...

  2. 转:用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData(待续)

    NSNumber + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithDouble:(double)value; - (in ...

  3. NSString NSNumber 相互转化

    NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init]; NSNumber *firstNum = [NSNumber n ...

  4. Objective-C中NSString转NSNumber的方法

    本文转载至 http://www.linuxidc.com/Linux/2013-02/78866.htm 在Objective-C中,以数字格式组成的字符串经常需要转换为NSNumber对象后再使用 ...

  5. iOS - OC NSNumber 数字

    前言 @interface NSNumber : NSValue @interface NSDecimalNumber : NSNumber 将基本数据类型包装成 OC 对象 1.NSNumber 与 ...

  6. iOS - OC NSString 字符串

    前言 @interface NSString : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> @interface NSM ...

  7. iOS - Swift NSNumber 数字

    前言 public class NSNumber : NSValue public class NSDecimalNumber : NSNumber NSNumber 可以被赋值为各种数值类型.我们可 ...

  8. Objective-C ,ios,iphone开发基础:几个常用类-NSNumber

    2013-08-21 在Objective-C,包括int double float 等等再内的基础数据类型都不是一个类,所以就不能给它们发送消息,也就是说不能调用方法,那怎么办呢 ?Objectiv ...

  9. NSNumber(把数字存进数组字典等的问题)

    官方文档地址https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNum ...

随机推荐

  1. gcc c语言中scanf输入格式不正确,清空缓冲区问题

    我的博客:www.while0.com 折磨了一下午,只因为fflush(stdin)再gcc里和vc里表现不一致.gcc里不能够清空缓冲区.直接上例子: #include <stdio.h&g ...

  2. web.xml 详解contextConfigLocation 转

    spring的应用初始化流程一直没有搞明白,刚刚又碰到了相关的问题.决定得好好看看这个流程.我们在开发spring的项目当中基本上都会在web.xml通过: <context-param> ...

  3. iOS 多线程学习笔记 —— GCD

    本文复制.参考自文章:iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用 ,主要为了加强个人对知识的理解和记忆,不做他用.原作者声明: 著作权声明:本文由http:// ...

  4. NTP服务器

    server 1.cn.pool.ntp.org server 1.asia.pool.ntp.org server 0.asia.pool.ntp.org pool.ntp.org

  5. cobbler常见问题

    http://@@http_server@@/cblr/links/CentOS-6.4-x86_64 cobbler cblr/svc 四.配置文件 cobbler有许多的配置文件,但是只有少部分基 ...

  6. Uber即将进驻扬州啦,车主火热招募中!

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. 网络子系统42_ip协议处理函数_数据帧的接收

    //向协议栈注册l3处理函数 1.1 void dev_add_pack(struct packet_type *pt) { int hash; //ptype_all ptype_base共用一把锁 ...

  8. hdu 2066 一个人的旅行(最短路问题)

    最短路································· 类似的问题还有好多不会!慢慢学吧!!!!. 进步,哪怕每天一点也行! (恋爱不是小事,确实小事的积累!(听着酷狗音乐台说的,很 ...

  9. js 传参数

    引用js实现传参数,然后在js文件里面动态加载东西,比如传递参数然后动态加载皮肤颜色,而我为了实现多语言,一般人家传递参数是为了区分版本用的还有清除js缓存问. <script src=&quo ...

  10. springframework hibernate Transaction not successfully started

    先贴出错误:org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transac ...