数字金额转大写金额 工具类

代码如下:

/** 金额转为汉字大写* @return* @throws* @author TomatoYan*/
public class NumberToCN {/*汉字中数字大写*/public static final String[] CN_UPPER_NUMBER_HEAD = {"元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"};public static final String[] CN_UPPER_NUMBER_COUNT = {"","元","元","元","","万元","万元","万元","","亿元","亿元","亿元"};/*汉字中小数点后的大写*/public static final String[] CN_UPPER_NUMBER_TAIL = {"分", "角"};/*汉字单位大写*/public static final String[] CN_UPPER_MONEY_UNIT = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};/*特殊字符:整*/public static final String CN_FULL = "整";/*特殊字符:零元整*/public static final String CN_ZERO_FULL = "零元" + CN_FULL;/*将输入的金额转换为对应的汉字大写*/public String changeAmtToCN(String amtStr) {String loanAmt = CN_ZERO_FULL;if (Double.parseDouble(amtStr) != 0) {String[] amtArr = amtStr.split("\\.");if (amtArr.length > 1) {String amtHead = amtArr[0];String amtTail = amtArr[1];loanAmt = Double.parseDouble(amtTail) == 0 ? (changeAmtHeadToCN(amtHead) + CN_FULL) : (changeAmtHeadToCN(amtHead) + changeAmtTailToCN(amtTail));} else {String amtHead = amtArr[0];loanAmt = changeAmtHeadToCN(amtHead) + CN_FULL;}}return loanAmt;}/*小数点前*/public String changeAmtHeadToCN(String headStr) {StringBuffer sb = new StringBuffer();Double head = Double.parseDouble(headStr);int count = 0;boolean flag = true;for (int i = 0; i < headStr.length(); i++) {int x = (int) (head % 10);if(x==0&&flag) {count++;head = head / 10;}else{flag=false;sb.append(CN_UPPER_NUMBER_HEAD[i]);sb.append(CN_UPPER_MONEY_UNIT[x]);head = head / 10;}}return count == 0?sb.reverse().toString():sb.reverse().append(CN_UPPER_NUMBER_COUNT[count]).toString();}/*小数点后*/public String changeAmtTailToCN(String tailStr) {StringBuffer sb = new StringBuffer();int tail = Integer.parseInt(tailStr);for (int i = 0; i < tailStr.length(); i++) {int x = tail % 10;sb.append(CN_UPPER_NUMBER_TAIL[i]);sb.append(CN_UPPER_MONEY_UNIT[x]);tail = tail / 10;}return sb.reverse().toString();}public static void main(String[] args) {String strArr[] = {"1","10","100","1000","10000","100000","1000000","10000000","100000000","1000000000","10000000000","100000000000"};for (String str :strArr) {System.out.println(str+","+new NumberToCN().changeAmtToCN(str));}}
}

由于是用数组来控制位数的所以最大支持壹仟亿,由于int值最多为2^32所以,使用了Double来做存储。

数字金额转大写金额 工具类相关推荐

  1. 金额大小写转换工具类

    /***金额大小写转换工具类*/public class MoneyUtil {/** 大写数字 */private static final String[] NUMBERS = { "零 ...

  2. java中bitconverter_【Java】BitConverter(数字转字节数组工具类)

    import java.nio.ByteOrder; import java.nio.charset.Charset; /** * 数字转字节数组工具类 */ public class BitConv ...

  3. 财务转换工具 - 人民币金额转大写工具类 java 版本

    文章目录 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 2.代码 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 public static void mai ...

  4. 数字金额转化大写金额

    /*** 数字金额转化大写金额* @param val string/number(字符串可包含'¥'和多余的0)* @returns {*}* 原生方法*///代码如下所示:function con ...

  5. JQuery 数字金额转换为大写金额

    web JQuery 数字金额转换为大写金额 网址:https://blog.csdn.net/qq_36894527/article/details/80675658 function Arabia ...

  6. PHP数字金额转换大写金额(20191122再次修改版)

    今天在博客园看到有文章在讲"PHP数字金额转换大写金额", 于是我抽时间也写了一个. 不多说, 把代码发上来: /*** 将数值金额转换为中文大写金额* @param $amoun ...

  7. WPF TextBox 允许输入数字及字母的工具类

    目录 WPF TextBox 允许输入数字及字母的工具类 工具代码 如何使用 WPF TextBox 允许输入数字及字母的工具类 WPF TextBox 仅允许数字.数字及小数点.字母及数字等进行输入 ...

  8. java中数字格式金额转换成中文大写金额工具类

    /*** 金额转换工具类*/ public class MoneyUtils {private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分&quo ...

  9. (后端)Java中关于金额大小写的工具类

    /*** 金额小数转换成中文大写金额* * @author Neil Han* */private static final String UNIT[] = { "万", &quo ...

最新文章

  1. Hadoop安装教程_分布式集群
  2. 网上教育能改变教育不公平的现状吗?
  3. 聊聊高并发(二十五)解析java.util.concurrent各个组件(七) 理解Semaphore
  4. python 会议室预约系统解决方案_令令开门智能会议室预约系统解决方案
  5. nhinx php 调优,高流量站点NGINX与PHP-fpm配置优化
  6. 报告解读下载 | 中国软件根技术发展白皮书之数据库
  7. javascript 函数初探 (六)--- 闭包初探#4
  8. php jwt payload,php实现JWT(json web token)鉴权实例详解
  9. .net core 缓存技术 、内存缓存 本人亲测
  10. linux系统Kile+Okular实现逆向搜索
  11. 华为微型计算机,8英寸华为平板M5青春版今日发布
  12. 笔记本nc10装linux,三星nc10笔记本如何设置U盘启动
  13. 【网络安全】如何限制内网网速
  14. JavaWeb 简易留言系统
  15. oracle脏读查询,没有进行commit操作的数据是否能被查询到,关于oracle的脏读和隔离级别...
  16. 研究生初试录取系统C语言,研究生初试录取管理系统
  17. 《生物化学与分子生物学》----蛋白质----听课笔记(五)
  18. JAVA 图片地址路径转换 Base64 工具类
  19. Flutter v1,大厂面试必问
  20. Robotstudio软件:机床上下料工作站机器人示教编程

热门文章

  1. 面向数据编程的编程语言_面向数据科学家的10个很棒的编程项目
  2. Microsoft c++ Speech 识别接口快速入门
  3. 电脑用HDMI线分屏后,耳机或音箱没声音之完美解决!
  4. 手机实名制更好保护你的通信安全
  5. 下载的主题文件epf格式的,如何导入到eclipse中。
  6. 《地理信息系统基础实例操作100例》-实验15 设置字段属性域(无法创建要素问题)
  7. 华为Forsion Compute笔记
  8. 新东方APP技术架构演进, C端技术经验分享
  9. 使用Python绘制CPI和PPI曲线
  10. 互动媒体技术-十二个“一”的文艺创作