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以及相互转换相关推荐

  1. Objective-C中的NSNumber和NSString

    In this tutorial we'll discuss NSNumber and NSString data types used in Objective-C. The Foundation ...

  2. iOS知识小集·NSNumber to NSString出错啦

    起因 某一次准备把一个NSNumber显示在lable上. NSString *text = [NSString stringWithFormat:@"%@",value]; 复制 ...

  3. iOS NSNumber转化NSString之description

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

  4. NSNumber 以及NSInteger,NSNumber以及Int的区别

    //   NSNumber 之所以可以(只能)包装基本数据类型,是因为继承了NSValue; //  NSNumber 把基本数据类型包装成一个对象类型(因为集合不能存放基本数类型) //初始化 NS ...

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

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

  6. ios NSUInteger和 NSInteger 还有 int

    NSInteger.NSUInteger的区别 NSInteger是有符号整形,即声明的变量既可以是正数也可以是负数 NSUInteger是无符号整形,即声明的变量只能是正数,一般用在UITableV ...

  7. NSNumber各类型包装转换

    1)int-->NSNumber:numberWithInt 2)NSNumber-->nsinteger:integerValue 3)string -->double:initW ...

  8. bool转nsnumber ios_iOS 的 NSNumber(对基本数据类型) NSValue(对结构体) 的装箱

    int. NSInteger. NSUInteger.NSNumber之间的区别和联系 int : 当使用int类型定义变量的时候,可以像写C程序一样,用int也可以用NSInteger,推荐使用NS ...

  9. NSString 用法总结与陷阱

    原文地址:http://m.blog.csdn.net/tangaowen/article/details/6438414 1. 如何 从 std::string 转为 NSString ,也就是 U ...

  10. iOS 格林威治 时间转换 NSString扩展

    #import <Foundation/Foundation.h>@interface NSString (Adapter)- (BOOL) isEmpty; //截取两个字符串中间的内容 ...

最新文章

  1. 图解 MySQL 索引:B-树、B+树
  2. 对称非对称算法混合加密实战(DES和AES混合加密)
  3. JPA学习---第五节:日期和枚举等字段类型的JPA映射
  4. oracle9i解密rewrap,ORACLE9I+DATAGUARD+RMAN
  5. 深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -...
  6. Oracle簇表介绍 (clustered table)
  7. SAP Spartacus全局配置模块里和layoutSlot相关的配置
  8. 使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器
  9. 公司应该如果管理员工?
  10. matlab求最大公倍数_小学数学最大公因数最小公倍数练习
  11. 计算机或与非门原理,依据基本原理构建现代计算机:从与非门到俄罗斯方块(基于项目的课程)...
  12. 【计算机组成原理】定点乘法运算之原码两位乘法
  13. 《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——3.3 MRP结果评估概览...
  14. 《分布式资本链周刊》第二期
  15. 小白怎么入行网络安全?看这一篇就够啦!
  16. 研究遭质疑!Jeff Dean回应:我们本就不是为得到新SOTA,成本计算也搞错了...
  17. oracle 同义词转换错误,一次对dual表的恢复操作(ORA-00980:同义词转换不再有效错误解决方法) (转载)...
  18. .bat批处理命令的介绍
  19. java stream order by_Java Stream 使用详解
  20. Cocos2dx-- 聊天系统之富文本(RichText)与字体对齐

热门文章

  1. 关于 API 定义 安全
  2. Windows Server 2012 GUI与Core的切换
  3. Linux基本信息查看命令
  4. 二维树状数组 探索进行中
  5. OLAP -- ODS 项目总结 -- BI 中的关键
  6. 由摄像机的内参K计算视景体——glFrustum的参数推导
  7. linux文件夹权限_五分钟搞定 Linux 文档全部知识,就看这篇文章
  8. linux下查看使用的显示服务器类型
  9. php怎样注释代码块,vscode怎样注释方法代码块
  10. python 读取xml内容