金额格式化加逗号

本文介绍两种格式化数字的方法:一种适用于带小数点的数字,通过逆向分割并在合适位置添加逗号;另一种针对整数,同样采用逆向处理并插入逗号。这两种方法均可确保数字的易读性。

有小数点的格式化方法

-(NSString*)strmethodComma:(NSString*)string

{
   
   
NSString *sign = nil;
   
   
if ([string hasPrefix:@"-"]||[string hasPrefix:@"+"]) {
       
        sign = [string
substringToIndex:1];
       
        string = [string
substringFromIndex:1];
       
    }
   
   
NSString *pointLast = [string substringFromIndex:[string length]-3];
   
   
NSString *pointFront = [string substringToIndex:[string length]-3];
   
   
NSInteger commaNum = (pointFront.length-1)/3;
   
   
NSMutableArray *arr = [NSMutableArray array];
   
   
for (NSInteger i = 0; i < commaNum+1; i++) {
       
       
NSInteger index = pointFront.length - (i+1)*3;
       
       
NSInteger leng = 3;
       
       
if(index < 0)
        {
            leng =
3+index;
           
            index =
0;
        }
       
       
NSRange range = {index,leng};
       
       
NSString *stq = [pointFront substringWithRange:range];
       
        [arr
addObject:stq];
       
    }
   
   
NSMutableArray *arr2 = [NSMutableArray array];
   
   
for (NSInteger i = arr.count - 1; i>=0; i--) {
        [arr2
addObject:arr[i]];
    }
   
   
NSString *commaString = [[arr2 componentsJoinedByString:@","] stringByAppendingString:pointLast];
   
   
if (sign) {
   
        commaString = [sign
stringByAppendingString:commaString];
       
    }
   
return commaString;
   
   
   
}

无小数点格式化加逗号
-(NSString *)countNumAndChangeformat:(NSString *)num
{
   
int count = 0;
   
long long int a = num.longLongValue;
   
while (a != 0)
    {
        count++;
        a /=
10;
    }
   
NSMutableString *string = [NSMutableString stringWithString:num];
   
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];
   
return newstring;
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值