iOS非金额两位小数转化为大写中文
最近APP中出现该需求,所以自己开发了一下相关方法,具体代码如下,按需自取。
-(NSString *)changetochinese:(NSString *)numstr
{double numberals=[numstr doubleValue];NSArray *numberchar = @[@"零",@"壹",@"贰",@"叁",@"肆",@"伍",@"陆",@"柒",@"捌",@"玖"];NSArray *inunitchar = @[@"",@"拾",@"佰",@"仟"];NSArray *unitname = @[@"",@"万",@"亿",@"万亿"];//总额乘以100转换成字符串(去除小数值)NSString *valstr=[NSString stringWithFormat:@"%.2f",numberals];NSString *prefix;NSString *suffix;if (valstr.length<=2) {prefix=@"零点";if (valstr.length==0) {suffix=@"零零";}else if (valstr.length==1){suffix=[NSString stringWithFormat:@"%@",[numberchar objectAtIndex:[valstr intValue]]];}else{NSString *head=[valstr substringToIndex:1];NSString *foot=[valstr substringFromIndex:1];suffix=[NSString stringWithFormat:@"%@%@",[numberchar objectAtIndex:[head intValue]],[numberchar objectAtIndex:[foot intValue]]];}}else{prefix=@"";suffix=@"";int flag=valstr.length-2;NSString *head=[valstr substringToIndex:flag-1];NSString *foot=[valstr substringFromIndex:flag];if (head.length>13) {return@"数值太大(最大支持13位整数),无法处理";}//处理整数部分NSMutableArray *ch=[[NSMutableArray alloc]init];for (int i = 0; i < head.length; i++) {NSString * str=[NSString stringWithFormat:@"%x",[head characterAtIndex:i]-'0'];[ch addObject:str];}int zeronum=0;for (int i=0; i<ch.count; i++) {int index=(ch.count -i-1)%4;//取段内位置int indexloc=(ch.count -i-1)/4;//取段位置if ([[ch objectAtIndex:i]isEqualToString:@"0"]) {zeronum++;}else{if (zeronum!=0) {if (index!=3) {prefix=[prefix stringByAppendingString:@"零"];}zeronum=0;}prefix=[prefix stringByAppendingString:[numberchar objectAtIndex:[[ch objectAtIndex:i]intValue]]];prefix=[prefix stringByAppendingString:[inunitchar objectAtIndex:index]];}if (index ==0 && zeronum<4) {prefix=[prefix stringByAppendingString:[unitname objectAtIndex:indexloc]];}}prefix = [prefix stringByAppendingString:@"点"];//处理小数位if ([foot isEqualToString:@"00"]) {suffix =[suffix stringByAppendingString:@"整"];}else if ([foot hasPrefix:@"0"]){NSString *footch=[NSString stringWithFormat:@"%x",[foot characterAtIndex:1]-'0'];suffix=[NSString stringWithFormat:@"%@",[numberchar objectAtIndex:[footch intValue] ]];}else{NSString *headch=[NSString stringWithFormat:@"%x",[foot characterAtIndex:0]-'0'];NSString *footch=[NSString stringWithFormat:@"%x",[foot characterAtIndex:1]-'0'];suffix=[NSString stringWithFormat:@"%@%@",[numberchar objectAtIndex:[headch intValue]],[numberchar objectAtIndex:[footch intValue]]];}}return [prefix stringByAppendingString:suffix];
}
iOS非金额两位小数转化为大写中文相关推荐
- iOS 四舍五入保留两位小数
通常我们四舍五入输出可能你会用NSString stringWithFormat函数%.2f方式,但是这个四舍五入有时可能不是四舍五入,而是五舍六入.其实有更精确的四舍五入方式. 先说一下最后确定使用 ...
- js 正则输入验证 整数 两位小数 三位小数
inputChange1(e){//验证输入 整数 var self = this var o = e.target ...
- JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数
第一: 限制只能是整数 ? 1 <input type = "text" name= "number" id = 'number' onkeyup= &q ...
- element-ui表格列金额显示两位小数
对于金额的显示,大多情况下需要保留两位小数,比如下面的(表格采用 element-ui): 在vue.js中,对文本的处理通常是通过设置一系列的过滤器,过滤器可以用在两个地方:双花括号插值 和 v-b ...
- el-input输入金额,保留两位小数
需求:"只允许输入金额保留两位小数",有2种实现方法 方法一(通过正则控制): html: <el-inputv-model="inputTable.amount& ...
- [js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入
[js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入 <body><input type=&qu ...
- php转化为2位小数的数字,学习猿地-php 转化为两位小数的方法
php转化为两位小数的方法:1.利用"round()"对浮点数进行四舍五入:2.利用"sprintf"格式化字符串:3.利用千位分组来格式化数字的函数" ...
- 金额格式化,符号位,保留两位小数
金额格式化,符号位,保留两位小数 金额格式化,有符号位,保留两位小数.和网上大相径庭,只是发现有的-345.66格式化之后为"-,345.66",符号位没有考虑到,自己改了一下.直 ...
- 对金钱金额的处理--每三位间隔‘,‘,末尾保留两位小数
对金钱金额的处理–每三位间隔',',末尾保留两位小数 由于项目的原因,最近遇到在下单时需要对金额进行特殊处理,我的需求是:当折扣不足0.01元时,不计入折扣.也就是这部分由客户自行承担. 朋友给我分享 ...
最新文章
- Visual Studio进行Web性能测试- Part III
- 一个动作让全球震惊!百度Apollo就这样改写了全球智能驾驶格局
- WireShark 探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)
- 王者服务器维护7月九号,腾讯手游王者荣耀7月9号9点半版本更新,备受期待的S20赛季它来了...
- 【2012百度之星/初赛下】B:网页聚类
- MFC入门(一)——MFC是一个编程框架
- uva 1630——Folding
- 千牛通知栏常驻是什么意思_店铺运营|内贸1688 店铺真正的权重是什么?
- 重载函数编译后的新名字
- 7-166 二分法求多项式单根 (20 分)
- 复合选择器-并集选择器(HTML、CSS)
- 8岁小学生表白遭拒:被一部iPhone打败
- FFmpeg滤镜代码级分析
- 企业级 SpringBoot 教程 (一)构建第一个SpringBoot工程
- JVM初识之类加载过程
- 怎么使用SSH从服务器下载文件
- php获取steam装备信息,api – 获取某人的Steam库存
- 黑CNN网站:解恨但不明智
- 内网安全 域环境的搭建(模仿真实内网环境 做渗透测试.)
- Rstudio的界面如何恢复成四个界面