天天看点

Objective-c中数字型字符串转换NSNumber方法

输入的符合数字格式的字符串,转换成NSNumber 类型的对象。

C代码  

Objective-c中数字型字符串转换NSNumber方法
  1. id result;  
  2. NSString * ss;  
  3. [email protected]"124";  
  4. result=[NSNumber numberWithFloat:[ss floatValue]];  
  5. NSLog(@"%f",[ss floatValue]);  
  6. NSLog(@"%f",[result floatValue]);   

直接将NSString 类的floatValue 方法将ss 对象转成float 类型,再使用NSNumber 的numberWithFloat 方法转成NSNumber 类型的对象。

但这里有一个问题, 如果ss 不是@”111.22 ” ,而是@ “xxx ”,则该方法将报错的。

因此,这里需要一个事先判断,判断ss 是不是能转成成NSNumber 。

根据这个修改要求,我再将代码转换成这样:

C代码  

Objective-c中数字型字符串转换NSNumber方法
  1. [email protected]"224.34129";  
  2.   NSNumberFormatter *f = [[NSNumberFormatter alloc] init];  
  3.   if ([f numberFromString:ss])  
  4.   {  
  5.       result=[NSNumber numberWithFloat:[ss floatValue]];  
  6.   }  
  7.   else  
  8.   {  
  9.       result=ss;  
  10.   }  
  11.   NSLog(@"%.2f",[result floatValue]);   

继续阅读