+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithDouble:(double)value;
- (int)intValue;
- (double)doubleValue;
NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,
装入 数组 NSArray,字典NSDictionary等集合中
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//创建NSNumber
NSNumber *pNum1=[[NSNumber alloc] initWithInt:12];
NSNumber *pNum2=[[NSNumber alloc] initWithInt:14];
NSLog(@"%@",pNum1);//输出 12
//NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,
//装入 数组 NSArray,字典NSDictionary等集合中
//int short long float double bool char 均可以转化为 NSNumber 类型
//示例:char——>NSNumber
NSNumber *pNumChar=[[NSNumber alloc] initWithChar:'a'];
NSLog(@"%@",pNumChar);//输出 97
//同样 NSNumber——>基本数据类型
//示例 NSNumber——>int
NSNumber *pIntNum=[NSNumber numberWithInt:123];
int nNum=[pIntNum intValue];
NSLog(@"%i",nNum);//输出 123
//将 NSNumber 转换为 NSString 类型
NSString *pStr=[pNum1 stringValue];
NSLog(@"%@",pStr);//12
//比较 NSNumber 是否相同
BOOL Bool=[pNum1 isEqualToNumber:pNum2];
NSLog(@"%i",Bool);//输出 0
/
/***将纯数字的 NSString 转换为 NSNumber***/
/
NSString *pString=@"123.4";
NSNumberFormatter *pNumFor=[[NSNumberFormatter alloc]init];
//通过NSNumberFormatter,可以设置NSNumber输出的格式
//判断是否可以转换
if ([pNumFor numberFromString:pString]==nil)
//说明 [pNumFor numberFromString:pString]返回是 NSNumber 类型
//如果不是纯数组则返回nil
{
NSLog(@"字符串 %@ 不能 转换成 NSNumber型",pString);
}
else
{
NSNumber *pP=[pNumFor numberFromString:pString];
NSLog(@"%@",pP);//123.4
//或者
pP=[NSNumber numberWithFloat:[pString floatValue]];//或者doubleValue
NSLog(@"%@",pP);//123.4
}
}
return 0;
}