如何将数字金额转成中文人民币大写
直接给出代码,复制即用
public static String arabiaToChinese(String number){if(isBlank(number)){return "零";}if(!isNumeric(number)){//是否是数字类型return "";}number = number.replaceAll(",","");number = number.replaceAll(" ","");if(Double.parseDouble(number) == 0){return "零";}BigDecimal decimal = new BigDecimal(number);number = decimal.toString();//分成两部分来处理String[] num = number.split("\\.");String head = num[0];if(head.length() > 10){System.out.println("数字超过十亿,无法计算");return "";}StringBuffer headNew = new StringBuffer();for(int i = head.length() - 1; i >= 0; i--){String si = String.valueOf(head.charAt(i));StringBuffer headNewString = new StringBuffer();//String ss = String.valueOf( num[0].charAt(i));switch (String.valueOf(head.charAt(i))){case "0":headNewString.append("零" + headNewString);break;case "1":headNewString.append("壹" + headNewString);break;case "2":headNewString.append("贰" + headNewString);break;case "3":headNewString.append("叁" + headNewString);break;case "4":headNewString.append("肆" + headNewString);break;case "5":headNewString.append("伍" + headNewString);break;case "6":headNewString.append("陆" + headNewString);break;case "7":headNewString.append("柒" + headNewString);break;case "8":headNewString.append("捌" + headNewString);break;case "9":headNewString.append("玖" + headNewString);break;}switch (num[0].length() - i - 1){case 0:headNewString.append("元");break;case 1:if(!"0".equals(si)) headNewString.append("拾");break;case 2:if(!"0".equals(si)) headNewString.append("佰");break;case 3:if(!"0".equals(si)) headNewString.append("仟");break;case 4:headNewString.append("万");break;case 5:if(!"0".equals(si)) headNewString.append("拾");break;case 6:if(!"0".equals(si)) headNewString.append("佰");break;case 7:if(!"0".equals(si)) headNewString.append("仟");break;case 8:headNewString.append("亿");break;case 9:headNewString.append("拾");break;}headNew = headNewString.append(headNew);}if(num.length > 1){if(num[1].length() > 2){System.out.println("小数点之后只能保留两位,系统将自动截断");num[1] = num[1].substring(0,2);}char[] tail = num[1].toCharArray();for (int i = 0; i < tail.length; i++) {StringBuffer tailNewString = new StringBuffer();switch (String.valueOf(tail[i])){case "0":tailNewString.append("零" + tailNewString);break;case "1":tailNewString.append("壹" + tailNewString);break;case "2":tailNewString.append("贰" + tailNewString);break;case "3":tailNewString.append("叁" + tailNewString);break;case "4":tailNewString.append("肆" + tailNewString);break;case "5":tailNewString.append("伍" + tailNewString);break;case "6":tailNewString.append("陆" + tailNewString);break;case "7":tailNewString.append("柒" + tailNewString);break;case "8":tailNewString.append("捌" + tailNewString);break;case "9":tailNewString.append("玖" + tailNewString);break;}if(i == 0) tailNewString.append("角");if(i == 1) tailNewString.append("分");headNew.append(tailNewString);}}String subject = headNew.toString();while (subject.contains("零零")) {subject = subject.replaceAll("零零", "零");}subject = subject.replaceAll("零亿","亿");subject = subject.replaceAll("亿万","亿");subject = subject.replaceAll("零万","万");subject = subject.replaceAll("零元","元");subject = subject.replaceAll("零角","");subject = subject.replaceAll("零分","");String c = String.valueOf(subject.charAt(subject.length() - 1));if("元".equals(c) || "角".equals(c)){subject = subject + "整";}return subject;}
如何将数字金额转成中文人民币大写相关推荐
- Java 将数字金额转成中文大写
一个 Java 将数字金额转成中文大写的工具类,还不是很完善. import java.util.regex.Matcher; import java.util.regex.Pattern;publi ...
- 把数字金额转换成中文大写数字
//把数字金额转换成中文大写数字 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", &qu ...
- 如何把数字金额转换成中文大写
问题:要求把万亿级别内的浮点数转换成中文大写,例如把数字1112221000060.254400转换成:壹万壹仟壹佰贰拾贰亿贰仟壹佰万零陆拾元零贰角伍分 分析:关键是先把double类型转换成char ...
- 【C语言】小写数字金额转换成中文大写金额
1. 更新说明 添加与 "零圆整" 等价的预先判断 (0 / 0. / 0.0 / 0.00 / . / .0 / .00) 修复了因使用函数 strdup 导致的内存泄漏 除去输 ...
- php数字转换百千万,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
- php显示大写金额,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
- php 把数字变成大写数字,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
- js和ts两种 将 小写金额转中文大写汉字,阿拉伯数字金额格式化成中文大写汉字,数字金额转换成财务发票大写中文
通过 npm i money2cn 安装 支持typescript 使用: import money2cn from 'money2cn' const nums = money2cn(23423 ...
- 金额转换成中文大写金额
留个纪念.这个类主要用于将数字金额转换成中文大写金额,提供了三个方法: toDX(double val) toDX(String val) toDX(int val) 使用方法 AmtInWords. ...
最新文章
- 微软推出“ Group Transcribe”应用,多人多语言会议实时高准确度文字转录并翻译
- 使用FAI+PXE批量部署Debian。
- 服务器2012怎么换桌面背景,2012年职称计算机Windows XP:更改桌面背景和颜色
- java comparator 降序排序_【转】java comparator 升序、降序、倒序从源码角度理解
- 【渝粤教育】国家开放大学2018年春季 0273-22T中国现代文学 参考试题
- 为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢...
- 学习SQL:SQL Server日期和时间函数
- 区间DP HDU 2476
- java selector wakeup_Selector
- [LeetCode] NO. 349 Intersection of Two Arrays
- 锐捷校园网使用python登录
- ASF文件格式详解(1)
- 珠联网络棋牌游戏 v2.95a 官方
- winscp开启ftp_WinSCP连接FTP上传下载文件教程
- RabbitMQ——01安装
- bootstrap之invalid-feedback
- 2010中国移动开发者大会21日开幕 揭密五大亮
- html浏览器兼容moz,webkit_css3中-moz、-ms、-webkit各什么意思
- Drupal < 7.32 “Drupalgeddon” SQL注入漏洞(CVE-2014-3704)漏洞复现
- win10如何修改系统文件夹名字