给出一个数字, 在小数点前边和后边,都以三位用逗号间隔

这段代码展示了如何在Objective-C中将一个数字格式化,使其在小数点前后的每三位数字间插入逗号。方法ChangeNumberFormat接收一个字符串类型的数字,通过分离整数和小数部分,然后逐次在每三位整数和小数部分添加逗号。

- (NSString *)ChangeNumberFormat:(NSString *)num

{

    if (num == nil) {

        return @"";

    }

    NSArray *array = [num componentsSeparatedByString:@"."];

    NSString *intergerNumber = [[num componentsSeparatedByString:@"."] firstObject];

    NSString *decimalNumber;

    if (array.count == 2) {

        decimalNumber = [[num componentsSeparatedByString:@"."] objectAtIndex:1];

    }

    int count = 0;

    count = (int)intergerNumber.length;

    

    NSMutableString *string = [NSMutableString stringWithString:intergerNumber];

    NSMutableString *newstring = [NSMutableString string];

    

    while (count > 3) {

        count -= 3;

        NSRange rang = NSMakeRange(string.length - 3, 3);

        NSString *str = [string substringWithRange:rang];

        [newstring insertString:str atIndex:0];

        [newstring insertString:@"," atIndex:0];

        [string deleteCharactersInRange:rang];

    }

    [newstring insertString:string atIndex:0];

    if (decimalNumber != nil) {

        

        [newstring insertString:@"." atIndex:newstring.length];

            int count2 = 0;

            count2 = (int)decimalNumber.length;

            NSMutableString *string2 = [NSMutableString stringWithString:decimalNumber];

        

            while (count2 > 3) {

                count2 -= 3;

                NSRange rang = NSMakeRange(0, 3);

                NSString *str = [string2 substringWithRange:rang];

                [newstring insertString:str atIndex:newstring.length];

                [newstring insertString:@"," atIndex:newstring.length];

                [string2 deleteCharactersInRange:rang];

            }

            [newstring insertString:string2 atIndex:newstring.length];

            

//    }

   

    }

    return newstring;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值