C#转换汉字大写函数

public static void FloatTransform(string strNum,ref string result)
  {
   string strInt;
   string strFloat;
   strInt=strNum.Substring(0,strNum.IndexOf(".",0));//整数部分的值
   strFloat=strNum.Substring((strNum.IndexOf(".",0)+1),(strNum.Length-strNum.IndexOf(".",0)-1));//小数部分的值
   //MessageBox.Show(strInt);
   //MessageBox.Show(strFloat);
   //return;
   int numLen=strInt.Length;
   string dx="零壹贰叁肆伍陆柒捌玖";
   string ws="分角元拾佰仟万拾佰仟亿拾佰仟";
   //MessageBox.Show(ws.Length.ToString());
   result=null;
   int i=0,w=0;
   int q=0;
   bool ling=true;
//计算整数的大写!
   while(i<numLen)
   {
    if(strInt.Substring(i,1)!="0")
    {
     //MessageBox.Show(strNum.Substring(i,1));
     result=result+dx.Substring(Convert.ToInt32(strInt.Substring(i,1)),1);
     result=result+ws.Substring((numLen-i)+1,1);
     ling=false;
     i++;
    }
    else if(ling==false&&strInt.Substring(i,1)=="0")
    {
     if((numLen-i+1)>10)//判断是否过亿
     {
      w=0;
      for(q=11;q<(numLen-i+1);q++)
      {
       w=w+Convert.ToInt32(strInt.Substring(numLen-q+1,1));
      }
      if(w==0)
      {
       result=result+"亿";
       i=numLen-9;
      }
      else
      {
       result=result+"零";
       i=i+1;
       ling=true;
      }
     }
     else if((numLen-i+1)>6)//判断是否是万以上
     {
      w=0;
      for(q=1;q<(numLen-i+1);q++)
      {
       w=w+Convert.ToInt32(strInt.Substring(numLen-q,1));
      }
      if(w==0)
      {
       result=result+"整";
       i=numLen+1;
      }
      else
      {
       result=result+"零";
       i=i+1;
       ling=true;
      }
     }

     else if((numLen-i+1)>3)
     {
      w=0;
      for(q=1;q<(numLen-i+1);q++)
      {
       w=w+Convert.ToInt32(strInt.Substring(numLen-q,1));
      }
      if(w==0)
      {
       result=result+"整";
       i=numLen+1;
      }
      else
      {
       result=result+"零";
       i=i+1;
       ling=true;
      }
     }
     else if((numLen-i+1)>0)
     {
      w=0;
      for(q=1;q<(numLen-i+1);q++)
      {
       w=w+Convert.ToInt32(strInt.Substring(numLen-q,1));
      }
      if(w==0)
      {
       result=result+"整";
       i=numLen+1;
      }
      else
      {
       result=result+"零";
       i=i+1;
       ling=true;
      }
     }  
    }
    else if(strInt.Substring(i,1)=="0"&&ling==true)
    {
     i=i+1;
    } 

   }
   //计算小数部分的大写!
    
   int numLenFlt=strFloat.Length;
   if(strFloat.Substring(0,1)=="0"&&strFloat.Substring(1,1)=="0")
   {
    result=result+"整";
   }
   else if(strFloat.Substring(0,1)!="0"&&strFloat.Substring(1,1)=="0")
   {
    result=result+dx.Substring(Convert.ToInt32(strFloat.Substring(0,1)),1)+"角";
   }
   else if(strFloat.Substring(0,1)=="0"&&strFloat.Substring(1,1)!="0")
   {
    result=result+dx.Substring(Convert.ToInt32(strFloat.Substring(1,1)),1)+"分";
   }
   else if(strFloat.Substring(0,1)!="0"&&strFloat.Substring(1,1)!="0")
   {
    result=result+dx.Substring(Convert.ToInt32(strFloat.Substring(0,1)),1)+"角"+dx.Substring(Convert.ToInt32(strFloat.Substring(1,1)),1)+"分";
   }
 
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值