【OBJC】数字转中文大写

时间:2021-09-28 06:56:28

博客园都不知道怎么外链图片……

 

- (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);
}