服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

将一个bigdecimal类型的数转换成中文


  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));
  }
  
  }

扫描关注微信公众号