• 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等类型一样可以转换

    http://www.cnblogs.com/csj007523/archive/2012/07/16/2593269.html

  • 相关阅读:
    剑指offer-二维数组中的查找 java实现
    Matlab2015b激活失效解决办法
    解决ueditor在多图上传的时候偶尔抽风,图片丢失或者乱序
    用.net正则去除所有的html源码或者提取出图片地址以及存数据库时的符号替换(如富文本编辑器)
    DropDownList的动态绑定方法(两种)
    Ueditor使用说明(包括设置其可编辑不可编辑)
    用webuploader上传图片并预览(上传文件)
    .net日期控件(全.net)
    代码注释
    面向对象的概念
  • 原文地址:https://www.cnblogs.com/geek6/p/4172116.html
Copyright © 2020-2023  润新知