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