自定义输入输出一个带分隔符,保留两位小数的金额文本

本文介绍了一种用于金融项目的金额格式化方法,通过自定义NSNumberFormatter实现了金额数字的标准化输出,并提供了保留小数位数的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近要做一个金融类的项目,需要将输出到金额转化为类似100,200.123的形式,于是自己写了一个方法。定义一个NSNumberFormatter属性numberFormatter。关键代码如下,可以将下面方法单独写成一个类,这样在所有需要输出金额的地方都可以使用。方法中isDecimal用来区别是否需要保留两位小数

- (NSNumberFormatter *)numberFormatter {

    if (!_numberFormatter) {

        _numberFormatter = [[NSNumberFormatteralloc] init];

        _numberFormatter.numberStyle =NSNumberFormatterDecimalStyle;

    }

    return_numberFormatter;

}


- (NSString *)stringWithNumberStr:(NSString *)numStr isDecimal:(BOOL)isDecimal {

    NSString *tempStr = [numStrstringByReplacingOccurrencesOfString:@","withString:@""];

    double num = [tempStrdoubleValue];

    

    NSString *string = [self.numberFormatterstringFromNumber:[NSNumbernumberWithDouble:num]];

    if (isDecimal) {

        NSRange range = [stringrangeOfString:@"."];

        if (range.location ==NSNotFound) {

            string = [stringstringByAppendingString:@".00"];

        } else if (range.location == string.length -2){

            string = [stringstringByAppendingString:@"0"];

        }

    } else {

        NSRange range = [stringrangeOfString:@"."];

        if (range.location ==NSNotFound) {

            

        } else {

            string = [stringsubstringToIndex:range.location];

        }

    }

    

    return string;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值