美文网首页
NSNumberFormatter

NSNumberFormatter

作者: innepeace | 来源:发表于2021-05-02 15:55 被阅读0次

    下面代码用于解决一个问题:使用NSNumberFormatter设置金融时,未设置formatter.locale,系统会自动设置formatter.locale为“设置-通用-语言与地区”里面选择的地区,由于类似德国这种国家,数字使用的 . 和 、(分组方式)与美国使用方式不一样,会导致数字自动转换失败,就有可能导致格式化后数字变成空值或0的情况。

    + (NSString *)addCommaFromStr:(NSString *)str withFlag:(BOOL)flag {
        if(str.length != 0){
            NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
            formatter.numberStyle =NSNumberFormatterDecimalStyle;
            formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; // 写死用美国的数字模式,不然会默认用系统自带的语言系统的模式,自带语言系统模式里面的数字模式有些和美式不一样,就会导致数字出错
            formatter.minimumIntegerDigits = 1;
            if (flag) {
                formatter.maximumFractionDigits = 2;
                formatter.minimumFractionDigits = 2;
            } else {
                formatter.maximumFractionDigits = 0;
                formatter.minimumFractionDigits = 0;
            }
            NSString *newAmount = [formatter stringFromNumber:[NSNumber numberWithDouble:[str doubleValue]]];
            return newAmount;
        }else{
            return @"--";
        }
    }
    

    相关文章

      网友评论

          本文标题:NSNumberFormatter

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