/** 处理一个数字加小数点的字符串,前面无0,保留两位。网上有循环截取的方法,如果数字过长,浪费内存,这个方法在优化内存的基础上设计的。*/-(NSString*)getTheCorrectNum:(NSString*)tempString
{//先判断第一位是不是 . ,是 . 补0if([tempString hasprefix:@"."]) {
tempString= [NSString stringWithFormat:@"0%@",tempString];
}//计算截取的长度NSUInteger endLength =tempString.length;//判断字符串是否包含 .if([tempString containsString:@"."]) {//取得 . 的位置NSRange pointRange = [tempString rangeOfString:@"."];
NSLog(@"%lu",pointRange.location);//判断 . 后面有几位NSUInteger f = tempString.length -1-pointRange.location;//如果大于2位就截取字符串保留两位,如果小于两位,直接截取if(f >2) {
endLength= pointRange.location +2;
}
}//先将tempString转换成char型数组NSUInteger start =0;constchar*tempChar =[tempString UTF8String];//遍历,去除取得第一位不是0的位置for(inti =0; i < tempString.length; i++) {if(tempChar[i] =='0') {
start++;
}else{
break;
}
}//如果第一个字母为 . start后退一位if(tempChar[start] =='.') {
start--;
}//根据最终的开始位置,计算长度,并截取NSRange range = {start,endLength-start};
tempString=[tempString substringWithRange:range];returntempString;
}