java金额数字转中文工具类详解
本文实例为大家分享了java金额数字转中文工具类的具体代码,供大家参考,具体内容如下
java金额数字转中文工具类ConvertNum.java
packagelight.mvc.utils; importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStreamReader; /** *金额数字转中文工具类 * *@authorardo * */ publicclassConvertNum{ /** *把金额阿拉伯数字转换为汉字表示,小数点后四舍五入保留两位 *还有一种方法可以在转换的过程中不考虑连续0的情况,然后对最终的结果进行一次遍历合并连续的零 */ publicstaticString[]ChineseNum=newString[]{"零","壹","贰","叁","肆", "伍","陆","柒","捌","玖"}; publicstaticStringNumToChinese(doublenum){ if(num>99999999999999.99||num<-99999999999999.99) thrownewIllegalArgumentException( "参数值超出允许范围(-99999999999999.99~99999999999999.99)!"); booleannegative=false;//正负标号 if(num<0){ negative=true; num=num*(-1); } longtemp=Math.round(num*100); intnumFen=(int)(temp%10);//分 temp=temp/10; intnumJiao=(int)(temp%10);//角 temp=temp/10; //此时temp只包含整数部分 int[]parts=newint[20];//将金额整数部分分为在0-9999之间数的各个部分 intnumParts=0;//记录把原来金额整数部分分割为几个部分 for(inti=0;;i++){ if(temp==0) break; intpart=(int)(temp%10000); parts[i]=part; temp=temp/10000; numParts++; } booleanbeforeWanIsZero=true;//标志位,记录万的下一级是否为0 StringchineseStr=""; for(inti=0;i0)//如果万的部分不为0,而万前面的部分小于1000大于0,则万后面应该跟零 chineseStr="零"+chineseStr; chineseStr="万"+chineseStr; } } } chineseStr=partChinese+chineseStr; } if("".equals(chineseStr))//整数部分为0,则表示为零元 chineseStr=ChineseNum[0]; elseif(negative)//整数部分部位0,但是为负数 chineseStr="负"+chineseStr; chineseStr=chineseStr+"元"; if(numFen==0&&numJiao==0){ chineseStr=chineseStr+"整"; }elseif(numFen==0){//0分 chineseStr=chineseStr+ChineseNum[numJiao]+"角"; }else{ if(numJiao==0) chineseStr=chineseStr+"零"+ChineseNum[numFen]+"分"; else chineseStr=chineseStr+ChineseNum[numJiao]+"角" +ChineseNum[numFen]+"分"; } returnchineseStr; } //转换拆分后的每个部分,0-9999之间 publicstaticStringpartConvert(intpartNum){ if(partNum<0||partNum>10000){ thrownewIllegalArgumentException("参数必须是大于等于0或小于10000的整数"); } String[]units=newString[]{"","拾","佰","仟"}; inttemp=partNum; StringpartResult=newInteger(partNum).toString(); intpartResultLength=partResult.length(); booleanlastIsZero=true;//记录上一位是否为0 StringchineseStr=""; for(inti=0;i 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。