50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > java金额小数位 java 数字转大写金额 小数部分太简单略

java金额小数位 java 数字转大写金额 小数部分太简单略

时间:2018-10-22 19:29:32

相关推荐

java金额小数位 java 数字转大写金额 小数部分太简单略

/*

四四分组,每一组都对应同一个规则

最关键的规则就是什么时候后面跟零?当前位的后一位为零且后面在当前位等级数范围内不能都为零即1000,如果后一位是

0,那么判断1后面 3 位都不能为 0 的情况下才可以跟 零。

当所得到的数四四分组 组数大于2时,低位组 要判断是否还有高位组,如果还有高位组且本组第一位为 0 时 前面要加零

如:10010030 分为 1001 0030 那么0030 这一组要除了能够得到 参拾外 还要判断自己前面是否要跟 零

总之解决这个问题就要解决这前后跟零的问题。

*/

class MoneyUtil{

private String numberString;

private final String[] chineseDigits={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};

private final String[] units={"","拾","佰","仟"};

public MoneyUtil(){

}

public MoneyUtil(String numberString){

this.numberString=numberString;

}

private String fourWise(String str){

int len=str.length();

String result="";

for(int i=0;i

int place=Integer.parseInt(String.valueOf(str.charAt(i)));

String unit=units[len-i-1];

if(place!=0){

if(i+1

result=result+chineseDigits[place]+unit+"零";

}else

result=result+chineseDigits[place]+unit;

}

}

return result;

}

private int countZero(String str){

int len=str.length();

int count=0;

for(int i=0;i

if(str.charAt(i)=='0')

count+=1;

}

return count;

}

public String toDaXie(){

String result="";

String str=numberString;

int oldLen=str.length();

for(int i=0;i<4-oldLen%4;i++){//不能用可变的量length()作为判断依据。

str="0"+str;

}

int len=str.length()/4;

String[] parts=new String[len];

for(int i=0;i

parts[i]=str.substring(str.length()-(i+1)*4,str.length()-(i+1)*4+4);

}

for(int i=0;i

String fourWise=fourWise(parts[i]);

if(Integer.parseInt(parts[i])==0){//如果这一组全为0,则要加上一个零。如100001200读作:壹亿零壹仟贰佰

result="零"+result;

}else if(i+1

switch(i){

case 0:result="零"+fourWise+result;break;

case 1:result="零"+fourWise+"万"+result;break;

case 2:result="零"+fourWise+"亿"+result;break;

case 3:result="零"+fourWise+"万"+result;break;

case 4:result="零"+fourWise+"兆"+result;break;

}

}else{

switch(i){

case 0:result=fourWise+result;break;

case 1:result=fourWise+"万"+result;break;

case 2:result=fourWise+"亿"+result;break;

case 3:result=fourWise+"万"+result;break;

case 4:result=fourWise+"兆"+result;break;

}}}return result;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。