iOS开发海外语言逗号和小数点颠倒的问题含千位分隔符

今天写一个印尼的项目遇到一个问题,本来在模拟器上和真机上运行的好好的,逻辑小数点和逗号的判断也都写好了,结果在提交项目之后,切换到印尼语言,突然发现都好都变成了小数点,小数点都变成了逗号。。。瞬间懵逼了。。。翻山倒海一顿海找以为是自己的问题没,结果最后发现在他们的语言里就是这个习惯,怎么办呢,而且还要加入千位分隔符。。。得想办法转过来啊,于是自己写了一个转换的方法。。。。

<code>

NSString *str1 = [NSString stringWithFormat:@"%@",number];
NSArray *moneys = [str1 componentsSeparatedByString:@"."];
if (moneys.count > 2) {
    return str1;
}else if (moneys.count < 2) {
    NSString *str = [NSString stringWithFormat:@"%@",str1];
    if (str.length <= 0) {
        return @"".mutableCopy;
    }
    NSString *tempRemoveD = [str stringByReplacingOccurrencesOfString:@"," withString:@""];
    NSMutableString *stringM = [NSMutableString stringWithString:tempRemoveD];
    NSInteger n = 2;
    for (NSInteger i = tempRemoveD.length - 3; i > 0; i--) {
        n++;
        if (n == 3) {
            [stringM insertString:@"," atIndex:i];
            n = 0;
        }
    }
    return stringM;
}
else {
    NSString *str = [NSString stringWithFormat:@"%@",moneys[0]];
    if (str.length <= 0) {
        return @"".mutableCopy;
    }
    NSString *tempRemoveD = [str stringByReplacingOccurrencesOfString:@"," withString:@""];
    NSMutableString *stringM = [NSMutableString stringWithString:tempRemoveD];
    NSInteger n = 2;
    for (NSInteger i = tempRemoveD.length - 3; i > 0; i--) {
        n++;
        if (n == 3) {
            [stringM insertString:@"," atIndex:i];
            n = 0;
        }
    }
    if([stringM isEqualToString:@""]){
        stringM = @"0".mutableCopy;
    }
    return [NSString stringWithFormat:@"%@.%@", stringM,moneys[1]];
    
}

</code>

这样就完美的解决了我项目中的问题,不知道适不适合大家,不适应的话可以做少许的修改,写的有点乱,不喜勿喷~~~

转载于:https://www.jianshu.com/p/3886220a62a2

猜你喜欢

转载自blog.csdn.net/weixin_34248258/article/details/91169783