首页 > 代码库 > 【OBJC】数字转中文大写
【OBJC】数字转中文大写
博客园都不知道怎么外链图片……
- (void)numToString:(double)num{ int iLen,iNum,iAddZero=0; NSMutableString *szChMoney = [[NSMutableString alloc] init]; NSArray *hzUnit = @[@"分",@"角",@"元",@"拾",@"佰",@"仟",@"万",@"拾",@"佰",@"仟",@"万",@"亿",@"拾",@"佰",@"仟",@"万",@"拾",@"佰",@"仟"]; NSArray *hzNum = @[@"零",@"壹",@"贰",@"叁",@"肆",@"伍",@"陆",@"柒",@"捌",@"玖"]; NSString *szNum = [NSString stringWithFormat:@"%18.0f",num*100]; szNum = [szNum stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; iLen = szNum.length; if ((iLen > 18) || (iLen == 0) || num == 0) { return; } for (int i = 0; i < iLen; i++) { iNum = [[szNum substringWithRange:NSMakeRange(i, 1)] intValue]; if (iNum == 0) { iAddZero++; } else { if (iAddZero > 0) { [szChMoney appendString:@"零"]; } [szChMoney appendString:hzNum[iNum]]; iAddZero = 0; } if (iNum != 0 //数字不等于0 添加单位 || iLen - i == 3 //处理个位单位 || iLen - i == 11 //处理亿位单位 || ((iLen - i + 1) % 8 == 0 && iAddZero < 4)) //处理万位单位 { [szChMoney appendString:hzUnit[iLen-i-1]]; } } if ([[szNum substringWithRange:NSMakeRange(iLen-2, 2)] isEqualToString:@"00"]) { [szChMoney appendString:@"整"]; } NSLog(@"%@",szChMoney);}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。