我刚学习JAVA,这是我第一个程序,计算银行金额转换大小写的,大家帮我看下对吗?谢谢了
import java.text.DecimalFormat;
public class helloworld {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
double inputvalue = 1234567890123.312030;
if(inputvalue == 0) {
System.out.print( "零 ");
return;
}
String stringvalue,sintvalue,sdecvalue;
DecimalFormat ss = new DecimalFormat( "0.00 ");
stringvalue = ss.format(inputvalue);
int decbit;
decbit = stringvalue.indexOf( ". ");
if(decbit == 0){
sintvalue = stringvalue;
sdecvalue = " ";
}else{
sintvalue = stringvalue.substring(0,decbit);
sdecvalue = stringvalue.substring(decbit + 1);
}
String chesenumunit[] = { " ", "壹 ", "贰 ", "叁 ", "肆 ", "伍 ", "陆 ", "柒 ", "捌 ", "玖 "};
helloworld hwtochn = new helloworld();
//处理整数
String schar,sreversed,schnintvalue= " ",schndecvalue= " ";
int ibit;
StringBuffer s=new StringBuffer(sintvalue);
sreversed = s.reverse().toString();
for(int i= 0;i <sreversed.length();i++)
{
schar = sreversed.substring(i, i+1);
ibit = Integer.parseInt(schar);
schnintvalue = chesenumunit[ibit] + hwtochn.GetUnit(i) +schnintvalue;
}
//清除多余的单位
String slist = "拾佰仟万亿 ";
for(int i= schnintvalue.length()-1;i> =0;i--)
{
schar = schnintvalue.substring(i, i+1);
if(slist.indexOf(schar)> =0)
{
for(int j = i-1;j> =0;j--)
{
String shighchar;
shighchar = schnintvalue.substring(j, j+1);
if(slist.indexOf(shighchar) <0)
{
break;
}
else if(slist.indexOf(shighchar,slist.indexOf(schar)+1)> =0)
{
schnintvalue = schnintvalue.substring(0,i)+schnintvalue.substring(i+1);
break;
}
}
}
}
schnintvalue = schnintvalue + "圆 ";
//处理小数
ibit = Integer.parseInt(sdecvalue.substring(0,1));
if (ibit > 0) schndecvalue = chesenumunit[ibit] + "角 ";
ibit = Integer.parseInt(sdecvalue.substring(1,2));
if (ibit > 0) schndecvalue = schndecvalue + chesenumunit[ibit] + "分 ";
String schnnum;
schnnum = schnintvalue + schndecvalue+ "整 ";
System.out.print(stringvalue+schnnum);
}
public String GetUnit(int num) {//取单位 非零数字按位数取单位
int level;
level = num%4;
switch(level) {
case 0:
if(num == 0)
return " ";
else
if(num%8 == 0) return "亿 "; else return "万 ";