public class tochinese
{
public tochinese()
{
}
public static string convetc(bigdecimal bds)
{
string strzero = "零";
string stryuan = "圆";
string strjiao = "角";
string strfen = "分";
string strzheng = "整";
string stritem[] = { "", "万", "亿", "兆", "??", "!!", "**"};//?f
string strc[]={ "", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾"};
string strb[]={ "", "拾", "佰", "仟"};
string strchinese = new string("");
string strsource = bds.tostring();
string[] strdesk;
string strprec = new string("");
int i = 0 , j = 0, inumber = 0, iprec = 0, iitem = 0, iloc = 0;
inumber = strsource.indexof(".");
strprec = strsource.substring(inumber+1);
//system.out.println(strprec);
iprec = strsource.length() - inumber - 1;
iitem = (int)((inumber+3)/4);
strdesk = new string[iitem];
//system.out.println( "inumber = " + inumber + "iprec = " + iprec + "iitem = " + iitem);
for(i=0; i<iitem; i++)
{
iloc = (inumber - 4 * i) >4 ? 4 : (inumber - 4 * i);
//system.out.println( "inumber = " + inumber + "iprec = " + iprec + "iitem = " + iitem + "iloc = " + iloc);
strdesk[i] = "";
int inowitem[] = { -1, -1, -1, -1};
for(j= (i*4)+iloc-1; j> (i*4)-1 ; j--)
{
inowitem[j-i*4] = (int)(strsource.charat(inumber - j - 1))-48;
//system.out.println(j-i*4 + " " + strsource.charat(inumber - j - 1) + " " + j);
}
strdesk[i] = stritem[i];
//system.out.println(strdesk[i]);
if(inowitem[0]>0)
{
strdesk[i] = strc[inowitem[0]] + strb[0] + strdesk[i];
}
if(inowitem[1]>0)
{
strdesk[i] = strc[inowitem[1]] + strb[1] + strdesk[i];
}
else if(inowitem[1]==0 && inowitem[0]>0 )
{
strdesk[i] = strzero + strdesk[i];
}
if(inowitem[2]>0)
{
strdesk[i] = strc[inowitem[2]] + strb[2] + strdesk[i];
}
else if(inowitem[2]==0 && inowitem[1]>0 )
{
strdesk[i] = strzero + strdesk[i];
}
if(inowitem[3]>0)
{
strdesk[i] = strc[inowitem[3]] + strb[3] + strdesk[i];
}
else if(inowitem[3]==0 && inowitem[2]>0 )
{
strdesk[i] = strzero + strdesk[i];
}
if(inowitem[0]==0&&inowitem[1]==0&&inowitem[2]==0&&inowitem[3]==0)
{
strdesk[i] = strzero;
if(i==0)
{
strdesk[i] = "";
}
else if (strdesk[i-1].equals("") || strdesk[i-1].indexof(strzero)==0)
{
strdesk[i] = "";
}
}
strchinese = strdesk[i] + strchinese ;
}
strchinese = strchinese + stryuan;
int ijiao=0, ifen=0;
try
{
ijiao = (int)(strprec.charat(0))-48;
}
catch(exception e1)
{
}
try
{
ifen = (int)(strprec.charat(1))-48;
}
catch(exception e2)
{
}
if(ijiao>0)
{
strchinese = strchinese + strc[ijiao] + strjiao ;
}
if(ifen>0)
{
strchinese = strchinese + strc[ifen] + strfen ;
}
else
strchinese = strchinese + strzheng ;
//system.out.println(strchinese);
return(strchinese);
}
public static void main(string[] args)
{
bigdecimal bdtest = new bigdecimal(756857867585656.09);
system.out.println(tochinese.convetc(bdtest));
}
}
闽公网安备 35060202000074号