美文网首页iOS OC 学习手册
iOS 添加千位分隔符

iOS 添加千位分隔符

作者: 阿拉灯神钉 | 来源:发表于2016-06-23 11:30 被阅读583次

    17.9.22 更新...

    1. 这个类NSNumberFormatter

        NSNumberFormatter *moneyFormatter = [[NSNumberFormatter alloc] init];
        moneyFormatter.positiveFormat = @"###,##0.00";
        NSString *formatString = [moneyFormatter stringFromNumber:@(1234567.123)];
    

    效果入下图

    image.png

    下边这个方法太麻烦... 直接用上边这个方法吧

    2.先取保留俩位小数, 再传入对应 string 传入 111111.09 得到 111,111.09 系统自带的转换方法有时候小数位计算不准确

    - (NSString *)separatedDigitStringWithStr:(NSString *)digitString {
        if (digitString.length <= 3) {
            return digitString;
        } else {
            NSMutableString *processString = [NSMutableString stringWithString:digitString];
            int location = processString.length - 3;
            NSMutableArray *processArray = [NSMutableArray array];
            while (location >= 0) {
                NSString *temp = [processString substringWithRange:NSMakeRange(location, 3)];
                [processArray addObject:temp];
                if (location < 3 && location > 0) {
                    NSString *t = [processString substringWithRange:NSMakeRange(0, location)];
                    [processArray addObject:t];
                }
                location -= 3;
            }
            NSMutableArray *resultsArray = [NSMutableArray array];
            int k = 0;
            for (NSString *str in processArray) {
                k++;
                NSMutableString *tmp = [NSMutableString stringWithString:str];
                if (str.length > 2 && k < processArray.count ) {
                    [tmp insertString:@"," atIndex:0];
                    [resultsArray addObject:tmp];
                } else {
                    [resultsArray addObject:tmp];
                }
            }
            NSMutableString *resultString = [NSMutableString string];
            for (int i = resultsArray.count - 1 ; i >= 0; i--) {
                NSString *tmp = [resultsArray objectAtIndex:i];
                [resultString appendString:tmp];
            }
            NSRange range = NSMakeRange(resultString.length - 4, 1);
            [resultString deleteCharactersInRange:range];
            return resultString;
        }
    }
    

    相关文章

      网友评论

        本文标题:iOS 添加千位分隔符

        本文链接:https://www.haomeiwen.com/subject/jgwndttx.html