package com.yahao.core.util;import java.math.BigDecimal;/***金额大小写转换工具类*/
public class MoneyUtil {/*** 汉语中数字大写*/private static final String[] CN_UPPER_NUMBER = { "零", "壹", "贰", "叁", "肆","伍", "陆", "柒", "捌", "玖" };/*** 汉语中货币单位大写,这样的设计类似于占位符*/private static final String[] CN_UPPER_MONETRAY_UNIT = { "分", "角", "元","拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "兆", "拾","佰", "仟" };/*** 特殊字符:整*/private static final String CN_FULL = "整";/*** 特殊字符:负*/private static final String CN_NEGATIVE = "负";/*** 金额的精度,默认值为2*/private static final int MONEY_PRECISION = 2;/*** 特殊字符:零元整*/private static final String CN_ZEOR_FULL = "零元" + CN_FULL;/*** 把输入的金额转换为汉语中人民币的大写* * @param numberOfMoney*            输入的金额* @return 对应的汉语大写*/public static String number2CNMontrayUnit(BigDecimal numberOfMoney) {StringBuffer sb = new StringBuffer();// -1, 0, or 1 as the value of this BigDecimal is negative, zero, or// positive.int signum = numberOfMoney.signum();// 零元整的情况if (signum == 0) {return CN_ZEOR_FULL;}//这里会进行金额的四舍五入long number = numberOfMoney.movePointRight(MONEY_PRECISION).setScale(0, 4).abs().longValue();// 得到小数点后两位值long scale = number % 100;int numUnit = 0;int numIndex = 0;boolean getZero = false;// 判断最后两位数,一共有四中情况:00 = 0, 01 = 1, 10, 11if (!(scale > 0)) {numIndex = 2;number = number / 100;getZero = true;}if ((scale > 0) && (!(scale % 10 > 0))) {numIndex = 1;number = number / 10;getZero = true;}int zeroSize = 0;while (true) {if (number <= 0) {break;}// 每次获取到最后一个数numUnit = (int) (number % 10);if (numUnit > 0) {if ((numIndex == 9) && (zeroSize >= 3)) {sb.insert(0, CN_UPPER_MONETRAY_UNIT[6]);}if ((numIndex == 13) && (zeroSize >= 3)) {sb.insert(0, CN_UPPER_MONETRAY_UNIT[10]);}sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);sb.insert(0, CN_UPPER_NUMBER[numUnit]);getZero = false;zeroSize = 0;} else {++zeroSize;if (!(getZero)) {sb.insert(0, CN_UPPER_NUMBER[numUnit]);}if (numIndex == 2) {if (number > 0) {sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);}} else if (((numIndex - 2) % 4 == 0) && (number % 1000 > 0)) {sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);}getZero = true;}// 让number每次都去掉最后一个数number = number / 10;++numIndex;}// 如果signum == -1,则说明输入的数字为负数,就在最前面追加特殊字符:负if (signum == -1) {sb.insert(0, CN_NEGATIVE);}// 输入的数字小数点后两位为"00"的情况,则要在最后追加特殊字符:整if (!(scale > 0)) {sb.append(CN_FULL);}return sb.toString();}
}
<span style="font-size:18px;">
</span>

http://blog.csdn.net/yulin_xp/article/details/4303505

http://www.jq-school.com/Show.aspx?id=395

http://www.open-open.com/lib/view/open1376032417901.html

Java国际软件交流中心 398918539

Java人民币小写转大写相关推荐

  1. Java人民币小写转大写字符串

    写了一个人民币小写转大写的方法,Java版本,思路很简单,没有测出什么Bug,有bug欢迎反馈 public class RMBChange {private static String[] nums ...

  2. C#,JAVA人民币小写转大写

    在CSDN里看到的,先在这里copy到这里留作以后备用 1 View Code 1 package fendou.wyb.io; 2 3  public class MoneySmallToBig { ...

  3. java把小写变大写_用java实现人民币小写变大写的方法

    用java语言可以实现人民币小写转换为大写吗?如何实现呢?下面常见的用java实现人民币小写变大写的方法可以说是最精简的了,希望大家可以学习下. 这里介绍一个通过取余的办法来实现将人民币小写转换为大写 ...

  4. java人民币大小写转换_Java 实现人民币小写转大写[转载http://sunjun.blogchina.com/]

    Java实现人民币小写转大写 import java.io.*; import java.util.*; import java.lang.*; public class money { public ...

  5. golang实现人民币小写转大写

    2019独角兽企业重金招聘Python工程师标准>>> 使用golang的正则表达式实现人民币小写转大写,代码如下: package mainimport ("regexp ...

  6. 人民币小写转换为大写函数

    人民币小写转换为大写 <script language=javascript> mymoney=window.prompt("请输入金额:"); </script ...

  7. 人民币小写转大写的一般方法

    人民币小写转大写的一般方法.还可以 const char* RMB(double rmb) {     if(rmb<0) return NULL;     static char *CCC[1 ...

  8. 英文转中文和人民币小写转大写

    public static string PinYin(string mystr)   { //指转换一个中文    string tt;    if ((mystr.ToUpper().Compar ...

  9. C语言实现人民币小写转大写

    这个是很早之前用C语言实现的人民币小写转大写的方法 /************************************************************************* ...

最新文章

  1. Rhel5.6下构建在线邮件服务系统并实现不同网段不同域名间的邮件互发
  2. PAT甲级1134 Vertex Cover :[C++题解]顶点覆盖、图论、用结构体存边,bool数组判断
  3. 往有序链表的插入元素使原链表依旧有序
  4. 全球与中国文件夹架市场研究与商业模式创新分析报告2022-2028年
  5. Java IO流学习总结七:Commons IO 2.5-FileUtils
  6. php文件上传错误代码
  7. 重复运行JUnit测试而没有循环
  8. 注册登录页面代码用js判断是否填入信息_php实现登录功能
  9. 前端安全 -- XSS攻击
  10. 【NOIP】OpenJudge - 15:银行利息
  11. 2021.01.04
  12. SchemaCrawler 9.4 发布,数据库结构输出
  13. ocs添加仓库受限问题
  14. 综合安防管理系统平台服务器,DSMS智慧安防综合管理平台系统应用方案
  15. 省市县三级联动多种实现方式
  16. FPGA学习——矩阵键盘驱动及数码管显示键值
  17. Statement cancelled due to timeout or client request 异常的修复【已解决】
  18. 跟键盘在一起时间比女朋友还长? 程序员如何选好一块专属键盘?
  19. C# 读取和输出asc文件
  20. oracle采购业务流程,直发(从供应商采购直接发到客户)的业务流程

热门文章

  1. 苹果Mac无法打开文档Word ,用户没有访问权限问题解决
  2. 海外直播带货系统源码,海外的直播带货究竟是什么样?
  3. SDUT OJ 2718
  4. 5V升压16.8V充电芯片
  5. 计算机应用技术创业ppt,计算机应用基础教程任务4创业计划书排版.pptx
  6. 02 C#截图操作(几种截图方法)
  7. 1.5计算机网络的主要性能指标(7个)
  8. 【医疗机构】开通微信预约挂号服务,这两类资质缺一不可!
  9. IOS开发语言OC的基本语法以及结构
  10. PVE 为虚拟机 直通硬盘