C#转换汉字大写函数

原创 2006年06月04日 11:20:00

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)+"分";
   }
 
  }

C# 汉字中文大写货币转换函数类(根据其他人的VBA函数改编)

/// ///汉字中文大写货币转换函数类 /// public static string HZHB(decimal mymoney ) ...
  • luwq168
  • luwq168
  • 2014年09月10日 02:28
  • 667

c#数字转换为大写汉字

c#数字转换为大写汉字
  • szsbell
  • szsbell
  • 2016年07月01日 13:02
  • 948

C#数字转换成大写汉字程序

using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{    pu...

c#实现的阿拉伯数字转大写汉字金额

c#实现的阿拉伯数字转大写汉字金额 c#  初学c# 请多指教  废话没有 直接上代码  //将阿拉伯数字转成大写中文          public static stri...

C#通用类库--数字转为人民币汉字大写表示

//类名:EcanRMB //作用:数字转换为人民币大写 //作者:shan //时间:2014-03-11 using System; using System.Collections.Gene...

C#数字切换汉字大写

  • 2014年05月05日 18:44
  • 6KB
  • 下载

转换汉字金额大写存储过程

  • 2014年06月03日 14:11
  • 4KB
  • 下载

将金额数字转换为汉字大写金额

DATA: I_INPUT  TYPE  BSEG-DMBTR , "金额数字          O_OUTPUT) TYPE  STRING.        “金额汉字   DATA:    ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#转换汉字大写函数
举报原因:
原因补充:

(最多只允许输入30个字)