码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 字符串千位划分

时间:2016-08-23 18:59:05      阅读:412      评论:0      收藏:0      [点我收藏+]

标签:

/**
 *  格式化字符串3位一组(按位数取舍,没有入位)
 *
 *  @param numberObject 需要处理的字符串(可以是nsnumber)
 *  @param bits         保留的位数
 *
 *  @return 返回字符串
 */
+ (NSString *)numberDivision:(id)numberObject bits:(NSInteger)bits ;
/**
 *  格式化字符串3位一组(按位数取舍,没有入位)
 *
 *  @param numberObject 需要处理的字符串(可以是nsnumber)
 *  @param bits         保留的位数
 *  @param isInteger   是否自动保留整数(如 : yes 则 1.00 为 1)
 *  @return 返回字符串
 */
+ (NSString *)numberDivision:(id)numberObject bits:(NSInteger)bits isInteger:(BOOL)isInteger;

 

+ (NSString *)numberDivision:(id)numberObject bits:(NSInteger)bits {
    
    NSString * number = [NSString stringWithFormat:@"%@",numberObject];
    if ([NSString isBlankString:number]) {
        NSLog(@"字符串为空,应该注意");
    }
        //    if ([number containsString:@"."]) { 此方法iOS8以上可用
    if ([number rangeOfString:@"."].location != NSNotFound) {
        NSArray *arrNumber = [[NSArray alloc]initWithArray:[number componentsSeparatedByString:@"."]];
        NSMutableString *arrInt = [[NSMutableString alloc]initWithString:[arrNumber firstObject]];
        int index = 0;
        for (int i = 1; i <= arrInt.length; i ++) {
            if (i % 3 == 0 && arrInt.length > (i + index)) {
                [arrInt insertString:@"," atIndex:arrInt.length - (i + index)];
                index ++;
            }
        }
        if(bits != 0) {
        NSString *decimal = arrNumber.lastObject;
        if(decimal.length >= bits) {
            decimal = [decimal substringToIndex:bits];
        }else {
            while (decimal.length < bits) {
                decimal = [decimal stringByAppendingString:@"0"];
            }
        }
        return [NSString stringWithFormat:@"%@.%@",arrInt,decimal];
        }else {
        return [NSString stringWithFormat:@"%@",arrInt];
        }
        
    } else {
        NSMutableString *arrInt = [[NSMutableString alloc]initWithString:number];
        int index = 0;
        for (int i = 1; i <= arrInt.length; i ++) {
            if (i % 3 == 0 && arrInt.length > (i + index)) {
                [arrInt insertString:@"," atIndex:arrInt.length - (i + index)];
                index ++;
            }
        }
        if(bits != 0) {
            NSString *decimal = [NSString stringWithFormat:@"%@",@"0"];
            while (decimal.length < bits) {
                decimal = [decimal stringByAppendingString:@"0"];
            }
            return [NSString stringWithFormat:@"%@.%@",arrInt,decimal];
        }else {
            return [NSString stringWithFormat:@"%@",arrInt];
        }
    }
}

+ (NSString *)numberDivision:(id)numberObject bits:(NSInteger)bits isInteger:(BOOL)isInteger {
    NSString *number = [NSString numberDivision:numberObject bits:bits];
    if ([number rangeOfString:@"."].location != NSNotFound) {
        NSArray *numberArray = [number componentsSeparatedByString:@"."];
        NSString *decimal = numberArray.lastObject;
        if(decimal.length >1) {
            if (decimal.floatValue == 0) {
                return numberArray.firstObject;
            }
            NSString *tempString = nil;
            NSInteger offset = decimal.length - 1;
            while (offset) {
                tempString = [decimal substringWithRange:NSMakeRange(offset, 1)];
                if ([tempString isEqualToString:@"0"] ) {
                    offset --;
                }else {
                    break;
                }
                decimal = [decimal substringToIndex:offset ];
                return [NSString stringWithFormat:@"%@.%@",numberArray.firstObject,decimal];
            }
        }else {
            if ([decimal isEqualToString:@"0"]) {
                return numberArray.firstObject;
            }else {
                return number;
            }
        }
        
    }else {
        return number;
    }
    return number;
}

iOS 字符串千位划分

标签:

原文地址:http://www.cnblogs.com/kzw6412/p/5800470.html

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