当前位置:编程学习 > asp >>

任何数字转换为中文货币类型

[c-sharp:showcolumns] ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
/// </summary>  
  /// <param name="str">数字字符串</param>  
  /// <returns>转换成中文大写后的字符串或者出错信息提示字符串</returns>  
  public string ConvertSum(string str) 
  { 
      if (!IsPositveDecimal(str)) 
          return "输入的不是正数字!"; 
      if (Double.Parse(str) > 999999999999.99) 
          return "数字太大,无法换算,请输入一万亿元以下的金额"; 
      char[] ch = new char[1]; 
      ch[0] = '.'; //小数点  
      string[] splitstr = null; //定义按小数点分割后的字符串数组  
      splitstr = str.Split(ch[0]);//按小数点分割字符串  
      if (splitstr.Length == 1) //只有整数部分  
          return ConvertData(str) + "圆整"; 
      else //有小数部分  
      { 
          string rstr; 
          rstr = ConvertData(splitstr[0]) + "圆";//转换整数部分  
          rstr += ConvertXiaoShu(splitstr[1]);//转换小数部分  
          return rstr; 
      } 
 
  } 
  /// <summary>  
  /// 判断是否是正数字字符串  
  /// </summary>  
  /// <param name="str"> 判断字符串</param>  
  /// <returns>如果是数字,返回true,否则返回false</returns>  
  public bool IsPositveDecimal(string str) 
  { 
      Decimal d; 
      try 
      { 
          d = Decimal.Parse(str); 
 
      } 
      catch (Exception) 
      { 
          return false; 
      } 
      if (d > 0) 
          return true; 
      else 
          return false; 
  } 
  /// <summary>  
  /// 转换数字(整数)  
  /// </summary>  
  /// <param name="str">需要转换的整数数字字符串</param>  
  /// <returns>转换成中文大写后的字符串</returns>  
  public string ConvertData(string str) 
  { 
      string tmpstr = ""; 
      string rstr = ""; 
      int strlen = str.Length; 
      if (strlen <= 4)//数字长度小于四位  
      { 
          rstr = ConvertDigit(str); 
 
      } 
      else 
      { 
 
          if (strlen <= 8)//数字长度大于四位,小于八位  
          { 
              tmpstr = str.Substring(strlen - 4, 4);//先截取最后四位数字  
              rstr = ConvertDigit(tmpstr);//转换最后四位数字  
              tmpstr = str.Substring(0, strlen - 4);//截取其余数字  
              //将两次转换的数字加上萬后相连接  
              rstr = String.Concat(ConvertDigit(tmpstr) + "萬", rstr); 
              rstr = rstr.Replace("零萬", "萬"); 
              rstr = rstr.Replace("零零", "零"); 
 
          } 
          else 
              if (strlen <= 12)//数字长度大于八位,小于十二位  
              { 
                  tmpstr = str.Substring(strlen - 4, 4);//先截取最后四位数字  
                  rstr = ConvertDigit(tmpstr);//转换最后四位数字  
                  tmpstr = str.Substring(strlen - 8, 4);//再截取四位数字  
                  rstr = String.Concat(ConvertDigit(tmpstr) + "萬", rstr); 
                  tmpstr = str.Substring(0, strlen - 8); 
                  rstr = String.Concat(ConvertDigit(tmpstr) + "億", rstr); 
                  rstr = rstr.Replace("零億", "億"); 
             
补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,