iOS返回一个前面没有0,小数点后保留两位的数字字符串

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

/** 处理一个数字加小数点的字符串,前面无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;

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航