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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。