Object-C中的数字对象

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        /*
         Object-C中的数字对象:
         1.int,float,long,double等都是Object-C中的基本数据类型,不是对象,也就是说不能够向他们发送消息。
         2.有时需要将值类型作为对象使用,如NSArray,要求存储的必须是对象,因此不能直接将基本数据类型放入数组。
         3.如果需要存储基本数据类型(包括char),可以使用NSNumber类。
         */
        
        NSNumber *intNumber,*longNumber,*floatNumber,*charNumber,*doubleNumber;
        
        //int型值
        intNumber=[NSNumber numberWithInt:100];
        NSLog(@"%i",[intNumber intValue]);
        
        //long型值
        longNumber=[NSNumber numberWithLong:0xabcdef];
        NSLog(@"%lx",[longNumber longValue]);
        
        //char型值
        charNumber=[NSNumber numberWithChar:'A'];
        NSLog(@"%c",[charNumber charValue]);
        
        //float型值
        floatNumber=[NSNumber numberWithFloat:100.00];
        NSLog(@"%g",[floatNumber floatValue]);
        
        //double型值
        doubleNumber=[NSNumber numberWithDouble:12345e+15];
        NSLog(@"%lg",[doubleNumber doubleValue]);
        
        //验证两个值是否相等
        if([intNumber isEqualToNumber:floatNumber]==YES)
        {
            NSLog(@"%i和%g比较,值相等",[intNumber intValue],[floatNumber floatValue]);
        }
        else
        {
            NSLog(@"%i和%g比较,值不等",[intNumber intValue],[floatNumber floatValue]);
        }
        
        //两个值比较大小
        if([intNumber compare:floatNumber]==NSOrderedAscending)
        {
            NSLog(@"%i和%g比较,第一个数<第二个数",[intNumber intValue],[floatNumber floatValue]);
        }
        else
        {
            NSLog(@"%i和%g比较,第一个数≥第二个数",[intNumber intValue],[floatNumber floatValue]);
        }
    }
    return 0;
}

输出结果:

2014-02-12 21:59:34.847 04.数字[1229:303] 100

2014-02-12 21:59:34.849 04.数字[1229:303] abcdef

2014-02-12 21:59:34.849 04.数字[1229:303] A

2014-02-12 21:59:34.850 04.数字[1229:303] 100

2014-02-12 21:59:34.850 04.数字[1229:303] 1.2345e+19

2014-02-12 21:59:34.850 04.数字[1229:303] 100100比较,值相等

2014-02-12 21:59:34.851 04.数字[1229:303] 100100比较,第一个数第二个数

Program ended with exit code: 0



posted @ 2014-02-12 22:01  清山博客  阅读(844)  评论(0编辑  收藏  举报