iOS中金额字符串格式化显示的方法示例-创新互联
前言

由于项目中很多地方展现统计金额, 比如在一些金融类的 App 中,对于表示金额类的字符串,通常需要进行格式化后再显示出来。例如:
0 –> 0.00
123 –> 123.00
123.456 –> 123.46
102000 –> 102,000.00
10204500 –> 10,204,500.00
它的规则如下:
个位数起每隔三位数字添加一个逗号,同时保留两位小数,也称为“千分位格式”。
我们一开始采取了一种比较笨拙的处理方式如下:
首先根据小数点 . 将传入的字符串分割为两部分,整数部分和小数部分(如果没有小数点,则补 .00,如果有多个小数点则报金额格式错误)。对于小数部分,只取前两位;然后对整数部分字符串进行遍历,从右到左,每三位数前插入一个逗号 ,,最后再把两部分拼接起来,代码大致如下:
- (NSString *)moneyFormat:(NSString *)money {
if (!money || money.length == 0) {
return money;
}
BOOL hasPoint = NO;
if ([money rangeOfString:@"."].length > 0) {
hasPoint = YES;
}
NSMutableString *pointMoney = [NSMutableString stringWithString:money];
if (hasPoint == NO) {
[pointMoney appendString:@".00"];
}
NSArray *moneys = [pointMoney componentsSeparatedByString:@"."];
if (moneys.count > 2) {
return pointMoney;
} else if (moneys.count == 1) {
return [NSString stringWithFormat:@"%@.00", moneys[0]];
} else {
// 整数部分每隔 3 位插入一个逗号
NSString *frontMoney = [self stringFormatToThreeBit:moneys[0]];
if ([frontMoney isEqualToString:@""]) {
frontMoney = @"0";
}
// 拼接整数和小数两部分
NSString *backMoney = moneys[1];
if ([backMoney length] == 1) {
return [NSString stringWithFormat:@"%@.%@0", frontMoney, backMoney];
} else if ([backMoney length] > 2) {
return [NSString stringWithFormat:@"%@.%@", frontMoney, [backMoney substringToIndex:2]];
} else {
return [NSString stringWithFormat:@"%@.%@", frontMoney, backMoney];
}
}
}另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:iOS中金额字符串格式化显示的方法示例-创新互联
分享地址:http://www.cqwzjz.cn/article/dedhhg.html


咨询
建站咨询
