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

来源:互联网 发布:大数据开发和数据挖掘 编辑:程序博客网 时间:2024/05/01 17:04

最近要做一个金融类的项目,需要将输出到金额转化为类似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;

}


/* typedef NS_ENUM(NSUInteger, NSNumberFormatterStyle) { NSNumberFormatterNoStyle = kCFNumberFormatterNoStyle,四舍五入 NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle,金额 100,200,300.123 NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle,货币 $100,200,300.12 NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle,百分比 12% NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle,科学计数法 1.234E8 NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyle,口语 One... NSNumberFormatterOrdinalStyle NS_ENUM_AVAILABLE(10_11, 9_0) = kCFNumberFormatterOrdinalStyle, NSNumberFormatterCurrencyISOCodeStyle NS_ENUM_AVAILABLE(10_11, 9_0) = kCFNumberFormatterCurrencyISOCodeStyle, NSNumberFormatterCurrencyPluralStyle NS_ENUM_AVAILABLE(10_11, 9_0) = kCFNumberFormatterCurrencyPluralStyle, NSNumberFormatterCurrencyAccountingStyle NS_ENUM_AVAILABLE(10_11, 9_0) = kCFNumberFormatterCurrencyAccountingStyle, }; */


阅读全文
0 0
原创粉丝点击