博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS数字字符串转大写金额字符串(OC)
阅读量:7060 次
发布时间:2019-06-28

本文共 3516 字,大约阅读时间需要 11 分钟。

最近项目中需要前端对金额字符串进行处理,百度了未找到OC版本的。所以自己写了一个小算法,经过测试没出现啥问题。直接上代码。
-(NSString *)toCapitalLetters:(NSString *)money{    //首先转化成标准格式        “200.23”    NSMutableString *tempStr=[[NSMutableString alloc] initWithString:[NSString stringWithFormat:@"%.2f",[money doubleValue]]];    //位    NSArray *carryArr1=@[@"元", @"拾", @"佰", @"仟", @"万", @"拾", @"佰", @"仟", @"亿", @"拾", @"佰", @"仟", @"兆", @"拾", @"佰", @"仟" ];    NSArray *carryArr2=@[@"分",@"角"];    //数字    NSArray *numArr=@[@"零", @"壹", @"贰", @"叁", @"肆", @"伍", @"陆", @"柒", @"捌", @"玖"];    NSArray *temarr = [tempStr componentsSeparatedByString:@"."];    //小数点前的数值字符串    NSString *firstStr=[NSString stringWithFormat:@"%@",temarr[0]];    //小数点后的数值字符串    NSString *secondStr=[NSString stringWithFormat:@"%@",temarr[1]];    //是否拼接了“零”,做标记    bool zero=NO;    //拼接数据的可变字符串    NSMutableString *endStr=[[NSMutableString alloc] init];    /**    *  首先遍历firstStr,从最高位往个位遍历    高位----->个位    */    for(int i=(int)firstStr.length;i>0;i--)    {        //取最高位数        NSInteger MyData=[[firstStr substringWithRange:NSMakeRange(firstStr.length-i, 1)] integerValue];        if ([numArr[MyData] isEqualToString:@"零"]) {            if ([carryArr1[i-1] isEqualToString:@"万"]||[carryArr1[i-1] isEqualToString:@"亿"]||[carryArr1[i-1] isEqualToString:@"元"]||[carryArr1[i-1] isEqualToString:@"兆"]) {                //去除有“零万”                if (zero) {                    endStr =[NSMutableString stringWithFormat:@"%@",[endStr substringToIndex:(endStr.length-1)]];                    [endStr appendString:carryArr1[i-1]];                    zero=NO;                }else{                    [endStr appendString:carryArr1[i-1]];                    zero=NO;                }                //去除有“亿万”、"兆万"的情况                if ([carryArr1[i-1] isEqualToString:@"万"]) {                    if ([[endStr substringWithRange:NSMakeRange(endStr.length-2, 1)] isEqualToString:@"亿"]) {                        endStr =[NSMutableString stringWithFormat:@"%@",[endStr substringToIndex:endStr.length-1]];                    }                    if ([[endStr substringWithRange:NSMakeRange(endStr.length-2, 1)] isEqualToString:@"兆"]) {                        endStr =[NSMutableString stringWithFormat:@"%@",[endStr substringToIndex:endStr.length-1]];                    }                }                //去除“兆亿”                if ([carryArr1[i-1] isEqualToString:@"亿"]) {                    if ([[endStr substringWithRange:NSMakeRange(endStr.length-2, 1)] isEqualToString:@"兆"]) {                        endStr =[NSMutableString stringWithFormat:@"%@",[endStr substringToIndex:endStr.length-1]];                    }                }            }else{                if (!zero) {                    [endStr appendString:numArr[MyData]];                    zero=YES;                }            }        }else{            //拼接数字            [endStr appendString:numArr[MyData]];            //拼接位            [endStr appendString:carryArr1[i-1]];            //不为“零”            zero=NO;        }    }    /**    *  再遍历secondStr    角位----->分位    */    if ([secondStr isEqualToString:@"00"]) {        [endStr appendString:@"整"];    }else{        for(int i=(int)secondStr.length;i>0;i--)        {            //取最高位数            NSInteger MyData=[[secondStr substringWithRange:NSMakeRange(secondStr.length-i, 1)] integerValue];            [endStr appendString:numArr[MyData]];            [endStr appendString:carryArr2[i-1]];        }    }    return endStr;}

(不要望了,一个方法,没有链接)

转载于:https://www.cnblogs.com/CF-STRONG/p/5940983.html

你可能感兴趣的文章
安装SP3后不能进入系统的办法
查看>>
20150905日课程作业(计划任务mail,at,cron,)
查看>>
shell训练营Day15
查看>>
MySQL常用语句命令
查看>>
关于字符串的一些操作
查看>>
bootstrap-导航(垂直堆叠带分隔线的导航)
查看>>
安装tomcat-7.0.61图文
查看>>
游戏程序员的学习指南(必看)(二)
查看>>
手把手教你如何建立自己的Linux系统(LFS速成手册)
查看>>
初识 sqlite 与 content provider 学习笔记
查看>>
java--ftp的断点上传和断点下载
查看>>
11.SSH整合
查看>>
PowerShell记录脚本运行过程
查看>>
OpenSUSE下启动ssh和samba服务以及防火墙设置
查看>>
linux nethogs查看进程流量
查看>>
pip 安装报utf-8错解决办法
查看>>
django 中form在html中的简单使用
查看>>
lync 2013标准版安装
查看>>
WebService基础介绍
查看>>
jdbc的使用
查看>>