千亿级别数字的人民币读法
来源:互联网 发布:mysql用户名和密码 编辑:程序博客网 时间:2024/06/11 10:06
</pre><pre name="code" class="java">package com.sungeo;/** * 人民币的读法是四位一节; x仟x百x拾 x (亿) x仟x百x拾 x (万) x仟x百x拾 x * @author Administrator */public class NumToRmb {private String[] hanArr=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};private String[] unitArr=new String[]{"拾","百","仟"};private String[] wyArr=new String[]{"万","亿"};private static String[] xiaoArr=new String[]{"分","角","圆"};/** * @param args */public static void main(String[] args) {NumToRmb toRMB=new NumToRmb();String[] arr=toRMB.divideDouble(12001234.12);//输入数字,变成保留两位小数的人民币读法,支持千亿级别的人民币读法int len=checkLength(arr[0]);String readHan="";if(len<=4){readHan=toRMB.readZheng4(arr[0]);}else if(len<=8){readHan=toRMB.readZheng8(arr[0]);}else if(len<=12){readHan=toRMB.readZheng12(arr[0]);}else {System.out.println("只支持千亿级读法!");}System.out.println(readHan+(readHan==""?"":xiaoArr[2])+toRMB.readXiao(arr[1]));}private static int checkLength(String str){return str.length();}/** * 长度小于等于12的整数读法 */private String readZheng12(String numStr){String result="";String last8Str=numStr.substring(numStr.length()-8);String result8=readZheng8(last8Str);String first=numStr.substring(0, numStr.length()-8);String firstStr=readZheng4(first);result=firstStr+wyArr[1]+result8;return result;}/** * 长度小于等于8的整数读法 * @param numStr * @return */private String readZheng8(String numStr){String result="";String last4Str=numStr.substring(numStr.length()-4);String result4=readZheng4(last4Str);String first=numStr.substring(0, numStr.length()-4);String firstStr=readZheng4(first);result=firstStr+wyArr[0]+result4;return result;}/** *长度小于等于4的整数的读法 */private String readZheng4(String numStr){String result="";for(int i=0;i<numStr.length();i++){int num=numStr.charAt(i)-48;//‘4’->4;if(num!=0&&i!=numStr.length()-1){result+=hanArr[num]+unitArr[numStr.length()-i-2];}else if(num==0){ //中间为0的不读取}else {result+=hanArr[num];}}return result;}/** * 小数的读法 */private String readXiao(String xiaoStr){String result="";for(int i=0;i<xiaoStr.length();i++){int num=xiaoStr.charAt(i)-48;//‘4’->4;if(num!=0 ){result+=hanArr[num]+xiaoArr[xiaoArr.length-i-2];}}return result;}/** * 将一个double数分割成小数和整数两部分; 3.14d -> {"3","14"} * @param d 要分割的double 数 * @return 整数和小数形成的字符串数组 */private String[] divideDouble(double d){if(d<=0){System.out.println("请输入有效金额!");}String zheng=(long)d+"";String xiao=(long)Math.round((d%1*100))+"";return new String[]{zheng,xiao};}}
1 1
- 千亿级别数字的人民币读法
- 数字的人民币中文读法
- 浮点数字转为大写人民币读法---来自《疯狂Java讲义》第四章的数组应用
- 英语数字的读法
- 阿拉伯数字转化人民币读法
- java实现浮点数人民币的汉字读法,简洁版
- 数字转换人民币的类
- 英文中数字、表达式、符号的读法
- 英语数字的读法(ZT)
- boj 469. 暑假作业题-数字的读法
- 输入数字把数字变成中文的读法
- 输入一个不超过12位的整数,转化为人民币的读法
- 疯狂java讲义 第四章 01人民币的转换读法小程序
- 将浮点型数据转化为人民币读法字符串的方法(数组实现)
- 输入一个整数部分不超过12位的小数,变成人民币读法
- 将浮点数转成人民币读法字符串
- 英语中的数字读法
- 数字自然读法
- AsyncTask
- SpringMVC结构---核心组件
- NSLog 输出格式汇总
- 第十四周阅读程序3
- hdu4834 百度之星2014初赛第二场
- 千亿级别数字的人民币读法
- 通过dct改引脚配置如何编译
- 2014-第14周项目三-立体类族共有的抽象类
- The connection to adb is down, and a severe error has occured.
- Compiler compliance level of project rams should be 5.0.Your current workspace default is 6.0.Do you
- Cocos2d-x3.0TestCpp目录笔记(二)
- 大数运算
- Oracle中Null与空字符串的区别
- 再理解 as3.0接口