• IOS Number 处理(int>NSNumber,NSNumber>nsinteger,string >double,CGFloat > dobule)


    1 小结:

    1)int-->NSNumber:numberWithInt

    2)NSNumber-->nsinteger:integerValue

    3)string -->double:initWithString

    4)CGFloat --> dobule:initWithFloat,decimalobj doubleValue

    5)使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。

    6)NSInteger是基础类型,但是NSNumber是一个类。如果想要在NSMutableArray里存储一个数值,直接用NSInteger是不行的,比如在一个NSMutableArray里面. 

    7) NSString与NSInteger的相互转换

        NSString * string = [NSString stringWithFormat:@"%d",integerNumber]; 

       integer = [string intValue]; 

    static void numberTest(){

    NSNumber *numObj = [NSNumber numberWithInt: 2];

    NSLog(@"numObj=%@",numObj); 

    NSInteger myInteger = [numObj integerValue];

        

    NSLog(@"myInteger=%d",myInteger); 

    int a = [numObj intValue];

    NSLog(@"a=%d",a);

    //浮点数值使用CGFloat,NSDecimalNumber对象进行处理:

    NSDecimalNumber *myDecimalObj = [[NSDecimalNumber alloc] initWithString:@"23.30"]; 

    NSLog(@"myDecimalObj doubleValue=%6.3f",[myDecimalObj doubleValue]); 

    CGFloat myCGFloatValue = 43.4

    NSDecimalNumber *myOtherDecimalObj = [[NSDecimalNumber alloc] initWithFloat:myCGFloatValue]; 

    NSLog(@"myOtherDecimalObj doubleValue=%6.5f",[myOtherDecimalObj doubleValue]);

    } 

    2 、C语言的基本数据类型长度

    1.   
    2.        NSLog(@"The size of an int is: %lu bytes.",sizeof(int));  
    3. NSLog(@"The size of a short int is: %lu bytes.",sizeof(short int));  
    4. NSLog(@"The size of a long int is: %lu bytes.",sizeof(long int));  
    5. NSLog(@"The size of a char is: %lu bytes.",sizeof(char));  
    6. NSLog(@"The size of a float is: %lu bytes.",sizeof(float));  
    7. NSLog(@"The size of a double is: %lu bytes.",sizeof(double));  
    8. NSLog(@"The size of a bool is: %lu bytes.",sizeof(bool));   // Do any additional setup after loading the view,  
    结果:
    1. 2012-06-13 13:55:46.726 BaseType[3032:f803] The size of an int is: 4 bytes.  
    2. 2012-06-13 13:55:46.726 BaseType[3032:f803] The size of a short int is: 2 bytes.  
    3. 2012-06-13 13:55:46.727 BaseType[3032:f803] The size of a long int is: 4 bytes.  
    4. 2012-06-13 13:55:46.731 BaseType[3032:f803] The size of a char is: 1 bytes.  
    5. 2012-06-13 13:55:46.732 BaseType[3032:f803] The size of a float is: 4 bytes.  
    6. 2012-06-13 13:55:46.733 BaseType[3032:f803] The size of a double is: 8 bytes.  
    7. 2012-06-13 13:55:46.733 BaseType[3032:f803] The size of a bool is: 1 bytes.  
    3、格式化输出数据
    1. //整型   
    2.     int integerType = 5;  
    3.     //浮点型   
    4.     float floatType = 3.1415;  
    5.     //双浮点型   
    6.     double doubleType = 2.2033;  
    7.     //短整型   
    8.     short int shortType = 200;  
    9.     //长整型   
    10.     long long int longlongType = 7758123456767L;  
    11.     //c语言字符串   
    12.     char * cstring = "this is a string!";  
    13.       
    14.       
    15.     //整型   
    16.     NSLog(@"The value of integerType = %d",integerType);  
    17.     //浮点型   
    18.     NSLog(@"The value of floatType = %.2f",floatType);  
    19.     //双浮点型   
    20.     NSLog(@"The value of doubleType = %e",doubleType);  
    21.     //短整型   
    22.     NSLog(@"The value of shortType = %hi",shortType);  
    23.     //长整型   
    24.     NSLog(@"The value of longlongType = %lli",longlongType);  
    25.     //c语言字符串   
    26.     NSLog(@"The value of cstring = %s",cstring);  

    结果:

    1. 2012-06-13 14:06:18.757 BaseType[3215:f803] The value of integerType = 5  
    2. 2012-06-13 14:06:18.757 BaseType[3215:f803] The value of floatType = 3.14  
    3. 2012-06-13 14:06:18.758 BaseType[3215:f803] The value of doubleType = 2.203300e+00  
    4. 2012-06-13 14:06:18.758 BaseType[3215:f803] The value of shortType = 200  
    5. 2012-06-13 14:06:18.758 BaseType[3215:f803] The value of longlongType = 7758123456767  
    6. 2012-06-13 14:06:18.758 BaseType[3215:f803] The value of cstring = this is a string!  
    4、 int,NSInteger,NSUInteger,NSNumber 
    1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。
    2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。

    3.有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的。
     NSInteger是基础类型,但是NSNumber是一个类。如果想要在NSMutableArray里存储一个数值,直接用NSInteger是不行的,比如在一个NSMutableArray里面这样用:
    1. NSMutableArray *array = [[NSMutableArray alloc]init];  
    2.     [array addObject:[NSNumber numberWithInt:88]];  

     这样是会引发编译错误的,因为NSMutableArray里面放的需要是一个类,但‘88’不是类。

    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. NSNumber *num = [NSNumber numberWithInt:88];  
    2.    NSInteger integer = [num intValue];  
    5、NSString与NSInteger的相互转换
    1. NSInteger integerNumber = 888;  
    2. NSString * string = [NSString stringWithFormat:@"%d",integerNumber];  
    3. NSLog(@"string is %@", string);      
     
    1. integer = [string intValue];  
    2. NSLog(@"integer is%d", integerNumber);  

    char  float等类型一样可以转换 

  • 相关阅读:
    Winform 自定义TabControl实现浏览器标签
    LeetCode Add Two Numbers
    Java基础知识复习(二)
    Java基础知识复习(一)
    0-1背包问题复习
    centos7 vmware克隆解决网络问题
    阿里云上Docker Compose部署wordpress
    不需要瞎折腾,官方文档才是终极
    centos7 nginx安装
    iptables练习题(四)
  • 原文地址:https://www.cnblogs.com/csj007523/p/2593269.html
Copyright © 2020-2023  润新知