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] 100和100比較,值相等
2014-02-12 21:59:34.851 04.數字[1229:303] 100和100比較,第一個數≥第二個數
Program ended with exit code: 0
最後更新:2017-04-03 12:55:04