在写这个之前,老师出的,把阿拉伯数字转化为人民币大写

因为想的跟老师不一样,被老师BS了下,回到住处就把这个写出来

如果有问题,请提出

package com.joyleft.client;

public class MoneyUtil {

private static final String[] NUMBERS={ "","壹", "贰", "叁", "肆", "伍", "陆",

"柒", "捌", "玖" };

private static final String[]  IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰",

"仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };

private static final String[] DUNIT = { "角", "分" };

private static final String TOTAL="整";

/**

* 转成数组

* @param number

*/

public int[] toArray(String number){

char[]cn=number.toCharArray();

int []num=new int[cn.length];

for(int i=0;i

{

num[i]=Integer.parseInt(String.valueOf(cn[i]));

}

return num;

}

public void toChinese(String number){

String strInt="";

String strFloat="";

String StrNum="";

if(number.indexOf(",")>0)

number=number.replace(",", "");

if(number.indexOf(".")>0){//是否有小数点

strInt=number.substring(0,number.indexOf("."));

strFloat=number.substring(number.indexOf(".")+1);

strFloat=round(strFloat);

if("100".equals(strFloat)){//四舍五入后小数位没有了

StrNum=this.handleInteger(strInt,true);

strFloat="";

}else{

StrNum=this.handleInteger(strInt,false)+handleDecimal(strFloat);

}

}else{

System.out.println(number);

}

System.out.println(StrNum);

}

/**

* 整数部分处理

* @param number

*/

public String handleInteger(String number,boolean b){

String strNum="人民币:";

int[] num=null;

if("0".equals(number)){

return strNum+"";

}

num=toArray(number);

for(int i=0;i

if(b&&i==num.length-1){

num[i]=num[i]+1;

}

if(num[i]!=0){

strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];

}else{

if(num.length-i==13)//万亿位为零 加万字

strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];

else if(num.length-i==9)//亿位为零 加亿字

strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];

else if(num.length-i==5)//万位为零 加万字

strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];

else if(num.length-i==1)

strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1]+TOTAL;

}

}

return strNum;

}

/**

* 小数部分处理

* @param number

*/

public String handleDecimal(String number){

String strNum="";

int[] num=toArray(number);

for(int i=0;i

if(num[i]!=0)

strNum=strNum+NUMBERS[num[i]]+DUNIT[i];

else

strNum=strNum+NUMBERS[num[i]]+TOTAL;

}

return strNum;

}

/**

* 四舍五入  保留两位

* @param num

*/

public String round(String number){

String strNum="0."+number;

float num=Float.parseFloat(strNum);

int reNum=(int)num*1000%10;//取得千分位

int intNum=0;

if(reNum>=5){

num=(num*100+1);

intNum=(int)num;

}else{

intNum=(int)(num*100);

}

strNum=String.valueOf(intNum);

if(strNum.length()==1)

strNum="0"+strNum;

return strNum;

}

/**

* @param args

*/

public static void main(String[] args) {

new MoneyUtil().toChinese("3453845546430.200");

new MoneyUtil().toChinese("0.99");

}

}

结果

人民币:叁万肆仟伍佰叁拾捌亿肆仟伍佰伍拾肆万陆仟肆佰叁拾元整贰角整

人民币:玖角玖分

java人民币大写_JAVA 数字转人民币大写相关推荐

  1. php人民币函数,PHP数字转人民币大写函数

    PHP数字转人民币大写函数2018-04-23 09:59 如果你是一位财务人员,肯定遇到过一个问题,就是遇到一串数字,要将其写成大写的人民币,有时很容易搞错. 那么有没有什么方法可以准确的解决呢? ...

  2. php 将数字转为大写,将数字小写转为大写 php

    将数字小写转为大写,这原来是一个类,我改写为一个函数.修复和增加了其中一些在实际工作中需要的功能.使其更加全面.100%可用. function change_num($num) { $d = arr ...

  3. 人民币转换:数字转中文大写

    考试题目和要点: 中文大写金额数字前应标明"人民币"字样.中文大写金额数字应用壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.元.角.分.零.整等字样填写.(30分) 中文 ...

  4. java数字转为大写_java 数字转大写汉字

    packagecom.javens.test;importjava.util.HashMap;importjava.util.Map;/** * *@authorjavens *偶尔网上看到这个题目, ...

  5. python中将字符变为大写_python3 数字转人民币大写

    ''' 把一个浮点数分解成整数部分和小数部分字符串 num 需要被分解的浮点数 返回分解出来的整数部分和小数部分. 第一个数组元素是整数部分,第二个数组元素是小数部分 ''' def divide(n ...

  6. python数字转中文大写_python3 数字转人民币大写

    ''' 把一个浮点数分解成整数部分和小数部分字符串 num 需要被分解的浮点数 返回分解出来的整数部分和小数部分. 第一个数组元素是整数部分,第二个数组元素是小数部分 ''' def divide(n ...

  7. java数字转大写 其他报异常_java数字金额转大写

    /** * 数字金额大写转换,思想先写个完整的然后将如零拾替换成零 要用到正则表达式 */ public static String digitUppercase(double n) { String ...

  8. java钱币换算_Java编写钱币转换为大写程序

    import java.text.DecimalFormat; public class ChangeMonney { private static final String[] STR_UNIT = ...

  9. java 格式化位数_java数字如何格式化?

    展开全部 import java.text.DecimalFormat; public class Test{ public static void main(String[] args){ doub ...

  10. Java数字转换为人民币的大写

    工具类: import java.math.BigDecimal;/*** 数字转换为人民币的大写*/ public class NumberToCN {/*** 汉语中数字大写*/private s ...

最新文章

  1. 马斯克一作!Neuralink脑机接口细节公布,特殊材料防大脑损伤,专用芯片助技术落地...
  2. python读取文件名-Python获取指定文件夹下的文件名的方法
  3. BeautifulSoup库的使用
  4. 【企业管理】围绕价值创造开展人力资源管理
  5. VS2010 断点无法命中的解决方案
  6. linux php 依赖,在php5-fpm-alpine docker容器中安装php-gd依赖于alpine linux
  7. c++ console 取实时输入_灵活使用 console 让 js 调试更简单
  8. 绝大部分博士目前都无法进入大学
  9. 使用php简单网页抓取和内容分析,使用PHP简单网页抓取和内容分析_php
  10. Java 数字转换为汉语中人民币的大写
  11. 某些型号的Comba和D-Link路由器存在管理员密码泄露漏洞
  12. 2022年自动化专业、电气工程及其自动化专业大学生可以参加哪些专业相关的竞赛?
  13. Cannot pull, git cannot resolve reference ORIG_HEAD
  14. Visio方向键无法移动对象的解决办法[笔记本版]
  15. kmp算法严蔚敏C语言,【菜鸟福音】KMP算法简单理解(从严蔚敏老师的《数据结构》出发)...
  16. webflux之reactor-Publisher
  17. c语言借助中间变量完成的作业,北京交通大学黄宇黄宇老师C语言第一次作业.doc...
  18. 基于Python热点新闻关键词数据分析系统
  19. Teamwork(The second day of the team)
  20. 详解java人力外包的费用组成

热门文章

  1. Android persistent机制
  2. 前端代码 review 流程规范
  3. CICD篇-Travis-CI环境搭建
  4. 利用广播星历解算北斗卫星位置及精度分析
  5. 2022电大国家开放大学网上形考任务-大学语文非免费(非答案)
  6. lol服务器维护局,lol维护局 英雄联盟钻石维护局掉多少分
  7. IE浏览器插件ActiveX的制作以及Google 调用此插件
  8. HBuilder(H5+App)中集成腾讯云通信IM功能
  9. 在PHP项目中使用Standford Moss代码查重系统
  10. Git-Clone succeeded, but checkout failed