NSNumber 和 NSString 转换

直接上实例:

什么目的呢?  // @98.9899999 ---> @"98.989999"

让服务器返回的整数还是整数, 返回小数多了我们就只保留两位, 从模型上修改, 这个思想很重要,凡是引用到地方自己自动变,而不是每个地方都去修改,抛砖引玉,希望对各位有所帮助

- (NSNumber *)dealNumber:(NSNumber *)sourceNumber

{

NSString *str = [sourceNumber description];

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^\\d+\\.\\d{2}" options:NSRegularExpressionCaseInsensitive error:nil];

NSArray *results = [regex matchesInString:str options:NSMatchingReportCompletion range:NSMakeRange(0, str.length)];

for (NSTextCheckingResult *result in results) {

HMLog(@"%@", [str substringWithRange:result.range]);

}

// 小数点的位置

NSUInteger dotIndex = [str rangeOfString:@"."].location;

if (dotIndex != NSNotFound && str.length - dotIndex > 2) { // 小数超过2位

str = [str substringToIndex:dotIndex + 3];

}

//有个NSNumberFormatter类,不常用,可以把num转变成string,而不用先变成 float,再转变成str,会有精度损失

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];

return [fmt numberFromString:str];

}

- (void)setList_price:(NSNumber *)list_price

{

// @98.9899999 ---> @"98.989999"

_list_price = [self dealNumber:list_price];

}

- (void)setCurrent_price:(NSNumber *)current_price

{

_current_price = [self dealNumber:current_price];

}

时间: 2024-11-05 14:50:01

NSNumber 和 NSString 转换的相关文章

NSString 转换

NSString *tempA = @"123"; NSString *tempB = @"456"; 1,字符串拼接 NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB]; 2,字符转int int intString = [newString intValue]; 3,int转字符 NSString *stringInt = [NSString string

NSString 转换 UTF8

/** *  NSString 转换 UTF8声明 */ + (NSString *)UtfToString:(NSString *)newstring; /** *  NSString 转换 UTF8实现 */ +(NSString *)UtfToString:(NSString *)newstring{ return [newstring stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAl

iOS中NSString转换成HEX(十六进制)-NSData转换成int

http://www.2cto.com/kf/201402/281501.html 1 2 3 4 5 6 NSString *str = @"0xff055008"; //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型 unsigned long red = strtoul([str UTF8String],0,16); //strtoul如果传入的字符开头是“0x”,那么第三个参数是0,也是会转为十六进制的,这样写也可以: unsigned

iOS NSNumber转化NSString之description

我们经常需要把一个数字转成字符串,当你不需要配合其他字符串的时候可以用description. 1 /** 2 description属于NSObject 3 值是NSNumber时候,不用stringWithFormate来转化成字符串了.简便得多 4 在解析/赋值的时候比较有用,当我们需要NSString的时候,给我们的数据却是NSNumber.. 5 */ 6 7 //从字典取出的是NSNumber 8 NSDictionary * dict = @{ 9 @"一":@1, 10

【OC学习-17】NSNumber和NSString介绍以及一些操作方法

(1)NSNumber数字对象:虽然有int和float这些基本数字变量,但终究不是对象,所以不能接受消息(就是被调用),所以需要数字对象 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //格式和NSString创建类似,只是后面的初始化函数要有针对性,这是框架里面内置的 NSNumber *intNumber=[[NSNumber alloc]ini

NSNumber 转 NSString

假设现有一NSNumber的变量A,要转换成NSString类型的B 方法如下: NSNumberFormatter* numberFormatter = [[NSNumberFormatteralloc] init]; B = [numberFormatter stringFromNumber:A]; [numberFormatter release];

将NSString转换成UTF8编码的NSString

在使用网络地址时,一般要先将url进行encode成UTF8格式的编码,否则在使用时可能报告网址不存在的错误,这时就需要进行转换 下面就是转换函数: NSString *urlString= [NSString stringWithFormat:@"http://www.baidu.com]; NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes( kCFAllocatorDefault, (

utf-8、unicode 、nsstring转换

一.nsstring转utf-8 NSString * str1=[@"你好" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 二.utf-8转unicode NSString * title=[self utf8ToUnicode:@"你好"]; - (NSString *) utf8ToUnicode:(NSString *)string { NSUInteger length =

NSString 转换 float 的精度问题, 换double类型可以解决

@"0.01" 转换成float时, 经常会变成  0.009999799 这种形式, 因为float类型无法精准保存, 系统会选一个接近的值来代替. 而double类型则可以有更好的精度. http://stackoverflow.com/questions/9328260/converting-nsstring-to-float-adds-in-decimal-places Your issue seems to be that you don't understand how f