阿拉伯数字转成中文大写
2008-05-28 18:30:19.0
String NToC(String shu)
{
  String a[11]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖","点"};
  AnsiString b=shu;
  String c[11];
  String d="";
  for(int i=1;i<=shu.Length();i++)
  {
    c[i]=b[i];
    if(b[i]=='.')
    {
      d=d+a[10];
    }
    else
    {
       d=d+a[c[i].ToIntDef(0)];
    }
  }
   WideString b1=d;
  
   int d1=b1.Length();//字符串的总长度
   AnsiString PointStr;
   if(b1.Pos("点")!=0)
   {
     d1=b1.Pos("点")-1;//去掉小数点后的长度
     PointStr=b1.SubString(d1+1,b1.Length()-d1+1);//小数点后的字符串
     b1=b1.SubString(1,b1.Pos("点")-1);//去掉小数点后的字符串
   }
   switch(d1)
   {
    case 0:
        b1="零";
    case 2:
        b1.Insert("拾",d1);
        break;
    case 3:
        b1.Insert("拾",d1);
        b1.Insert("佰",d1-1);
        break;
    case 4:
        b1.Insert("拾",d1);
        b1.Insert("佰",d1-1);
        b1.Insert("仟",d1-2);
        break;
    case 5:
        b1.Insert("拾",d1);
        b1.Insert("佰",d1-1);
        b1.Insert("仟",d1-2);
        b1.Insert("万",d1-3);
        break;
    case 6:
        b1.Insert("拾",d1);
        b1.Insert("佰",d1-1);
        b1.Insert("仟",d1-2);
        b1.Insert("万",d1-3);
        b1.Insert("拾",d1-4);
        break;
   }
   int Result0 = b1.Pos("拾零");
   if(Result0>0)
     {
       b1.Delete(Result0+1,1);
     }
   int Result = b1.Pos("零拾");
   if(Result>0)
     {
       b1.Delete(Result+1,1);
     }
   int Result1=b1.Pos("零佰");
   if(Result1>0)
     {
       b1.Delete(Result1+1,1);
     }
   int Result2= b1.Pos("零仟");
   if(Result2>0)
     {
       b1.Delete(Result2+1,1);
     }
   int Result3= b1.Pos("零万");
   if(Result3>0)
     {
       b1.Delete(Result3+1,1);
     }
   int Result4= b1.Pos("零零零");
   if(Result4>0)
     {
       b1.Delete(Result4+1,2);
     }
   int Result5= b1.Pos("零零");
   if(Result5>0)
     {
       b1.Delete(Result5+1,1);
     }
   int Result6= b1.Pos("零零");
   if(Result6>0)
     {
       b1.Delete(Result6+1,1);
     }
   if(b1.SubString(b1.Length(),1)==AnsiString("零"))
      b1.Delete(b1.Length(),1);

   if(PointStr!="")
   {
     return b1+PointStr;
   }
   else
   {
     return b1;
   }
}
//注:当前待转换的数的长度是6位
 
 
 

文章评论
[以下网友留言只代表其个人观点,不代表中华网的观点或立场]
发表评论
昵 称:
主 页:
内 容:
表 情: