nsinteger转float_int、NSInteger、NSNumber和NSString以及相互转换
NSInteger:
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64typedeflongNSInteger;
typedef unsignedlongNSUInteger;#elsetypedefintNSInteger;
typedef unsignedintNSUInteger;#endif
由定义可知,在32系统下NSInteger 即为int,在64位系统下NSInteger位long。苹果的官方文档中总是推荐用NSInteger。
总结:NSInteger与int的区别是NSInteger会根据系统的位数(32or64)自动选择int的最大数值(int or long)。
当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。
在开发中只需使用NSInteger即可。
NSNumber:Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。
NSInteger是基础类型,但是NSNumber是一个类。如果想要存储一个数值,直接用NSInteger是不行的,比如在一个Array里面这样用:
NSArray *array=[[NSArray alloc]init];
[array addObject:3];//会编译错误
这样是会引发编译错误的,因为NSArray里面放的需要是一个类,但‘3’不是。这个时候需要用到NSNumber:
NSArray *array=[[NSArray alloc]init];
[array addObject:[NSNumber numberWithInt:3]];
Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。
例如以下封装方法:
+ (NSNumber*)numberWithChar: (char)value;+ (NSNumber*)numberWithInt: (int)value;+ (NSNumber*)numberWithFloat: (float)value;+ (NSNumber*)numberWithBool: (BOOL) value;
将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:
- (char)charValue;- (int)intValue;- (float)floatValue;-(BOOL)boolValue;- (NSString*)stringValue;
相互之间的转换
1: NSString <==> NSInteger
NSInteger转化 NSString类型:
[ NSString stringWithFormat:@"%d", NSInteger];
NSString转化 NSInteger类型:
NSInteger= [ NSString intValue ]
2 : NSString <==> NSNumber
将NSNumber转换为NSString
NSNumber*A;
NSString*B;
NSNumberFormatter* numberFormatter =[[NSNumberFormatteralloc] init];
B= [numberFormatter stringFromNumber:A];
将NSString转换为NSNumber
NSString*ss=@"224.34129";
NSNumber*result;
NSNumberFormatter*f =[[NSNumberFormatter alloc] init];
result=[f numberFromString:ss];
if(!(result))
{
result=ss;
}
NSLog(@"%.2f",[result floatValue]);
3.NSString 与 int ,float,double,NSInteger之间的转换
NSString *teststring = @"32.54";int i =[teststring intValue ];float i1 =[teststring floatValue ];double i2 =[teststring doubleValue ];
NSInteger i3=[teststring integerValue ];
NSString*tostring =nil ;
tostring= [ NSString stringWithFormat: @"%d",i];
NSLog (@"tostring-int:%@",tostring);
tostring= [ NSString stringWithFormat: @"%.3f",i1];
NSLog (@"tostring-float:%@",tostring);
tostring= [ NSString stringWithFormat: @"%e",i2];
NSLog (@"tostring-double:%@",tostring);
4.nsstring和float 还有int之间的转换
NSString *tempA = @"123";
NSString*tempB = @"456";1,字符串拼接
NSString*newString = [NSString stringWithFormat:@"%@%@",tempA,tempB];2,字符转intint intString =[newString intValue];3,int转字符
NSString*stringInt = [NSString stringWithFormat:@"%d",intString];4,字符转floatfloat floatString =[ newString floatValue];5,float转字符
NSString*stringFloat = [NSString stringWithFormat:@"%f",intString];
nsinteger转float_int、NSInteger、NSNumber和NSString以及相互转换相关推荐
- Objective-C中的NSNumber和NSString
In this tutorial we'll discuss NSNumber and NSString data types used in Objective-C. The Foundation ...
- iOS知识小集·NSNumber to NSString出错啦
起因 某一次准备把一个NSNumber显示在lable上. NSString *text = [NSString stringWithFormat:@"%@",value]; 复制 ...
- iOS NSNumber转化NSString之description
我们经常需要把一个数字转成字符串,当你不需要配合其他字符串的时候可以用description. 1 /** 2 description属于NSObject 3 值是NSNumber时候,不用strin ...
- NSNumber 以及NSInteger,NSNumber以及Int的区别
// NSNumber 之所以可以(只能)包装基本数据类型,是因为继承了NSValue; // NSNumber 把基本数据类型包装成一个对象类型(因为集合不能存放基本数类型) //初始化 NS ...
- Objective-C中NSString转NSNumber的方法
本文转载至 http://www.linuxidc.com/Linux/2013-02/78866.htm 在Objective-C中,以数字格式组成的字符串经常需要转换为NSNumber对象后再使用 ...
- ios NSUInteger和 NSInteger 还有 int
NSInteger.NSUInteger的区别 NSInteger是有符号整形,即声明的变量既可以是正数也可以是负数 NSUInteger是无符号整形,即声明的变量只能是正数,一般用在UITableV ...
- NSNumber各类型包装转换
1)int-->NSNumber:numberWithInt 2)NSNumber-->nsinteger:integerValue 3)string -->double:initW ...
- bool转nsnumber ios_iOS 的 NSNumber(对基本数据类型) NSValue(对结构体) 的装箱
int. NSInteger. NSUInteger.NSNumber之间的区别和联系 int : 当使用int类型定义变量的时候,可以像写C程序一样,用int也可以用NSInteger,推荐使用NS ...
- NSString 用法总结与陷阱
原文地址:http://m.blog.csdn.net/tangaowen/article/details/6438414 1. 如何 从 std::string 转为 NSString ,也就是 U ...
- iOS 格林威治 时间转换 NSString扩展
#import <Foundation/Foundation.h>@interface NSString (Adapter)- (BOOL) isEmpty; //截取两个字符串中间的内容 ...
最新文章
- 图解 MySQL 索引:B-树、B+树
- 对称非对称算法混合加密实战(DES和AES混合加密)
- JPA学习---第五节:日期和枚举等字段类型的JPA映射
- oracle9i解密rewrap,ORACLE9I+DATAGUARD+RMAN
- 深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -...
- Oracle簇表介绍 (clustered table)
- SAP Spartacus全局配置模块里和layoutSlot相关的配置
- 使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器
- 公司应该如果管理员工?
- matlab求最大公倍数_小学数学最大公因数最小公倍数练习
- 计算机或与非门原理,依据基本原理构建现代计算机:从与非门到俄罗斯方块(基于项目的课程)...
- 【计算机组成原理】定点乘法运算之原码两位乘法
- 《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——3.3 MRP结果评估概览...
- 《分布式资本链周刊》第二期
- 小白怎么入行网络安全?看这一篇就够啦!
- 研究遭质疑!Jeff Dean回应:我们本就不是为得到新SOTA,成本计算也搞错了...
- oracle 同义词转换错误,一次对dual表的恢复操作(ORA-00980:同义词转换不再有效错误解决方法) (转载)...
- .bat批处理命令的介绍
- java stream order by_Java Stream 使用详解
- Cocos2dx-- 聊天系统之富文本(RichText)与字体对齐