码迷,mamicode.com
首页 > 其他好文 > 详细

保留两位小数

时间:2015-04-17 11:16:16      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

/*
* 处理一个数字加小数点的字符串,前面无0,保留两位。网上有循环截取的方法,如果数字过长,浪费内存,这个方法在优化内存的基础上设计的。
*/
-(NSString*)getTheCorrectNum:(NSString*)tempString
{
//先判断第一位是不是 . ,是 . 补0
if ([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;
const char *tempChar = [tempString UTF8String];
//遍历,去除取得第一位不是0的位置
for (int i = 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];
return tempString;
}

保留两位小数

标签:

原文地址:http://www.cnblogs.com/zhibin/p/4434161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!