源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C# 大小写转换(金额)实例代码

  • 时间:2020-11-13 18:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C# 大小写转换(金额)实例代码
[b]Class:EcanRMB.cs [/b]
[u]复制代码[/u] 代码如下:
 using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;  namespace Jxc.WinClient.BLL  {      public class EcanRMB      {          /// <summary>          /// 转换人民币大小金额          /// </summary>          /// <param name="num">金额</param>          /// <returns>返回大写形式</returns>          public string CmycurD(decimal num)          {              string str1 = "零壹贰叁肆伍陆柒捌玖";            //0-9所对应的汉字              string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字              string str3 = "";    //从原num值中取出的值              string str4 = "";    //数字的字符串形式              string str5 = "";  //人民币大写金额形式              int i;    //循环变量              int j;    //num的值乘以100的字符串长度              string ch1 = "";    //数字的汉语读法              string ch2 = "";    //数字位的汉字读法              int nzero = 0;  //用来计算连续的零值是几个              int temp;            //从原num值中取出的值              num = Math.Round(Math.Abs(num), 2);    //将num取绝对值并四舍五入取2位小数              str4 = ((long)(num * 100)).ToString();        //将num乘100并转换成字符串形式              j = str4.Length;      //找出最高位              if (j > 15) { return "溢出"; }              str2 = str2.Substring(15 - j);   //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分              //循环取出每一位需要转换的值              for (i = 0; i < j; i++)              {                  str3 = str4.Substring(i, 1);          //取出需转换的某一位的值                  temp = Convert.ToInt32(str3);      //转换为数字                  if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15))                  {                      //当所取位数不为元、万、亿、万亿上的数字时                      if (str3 == "0")                      {                          ch1 = "";                          ch2 = "";                          nzero = nzero + 1;                      }                      else                      {                          if (str3 != "0" && nzero != 0)                          {                              ch1 = "零" + str1.Substring(temp * 1, 1);                              ch2 = str2.Substring(i, 1);                              nzero = 0;                          }                          else                          {                              ch1 = str1.Substring(temp * 1, 1);                              ch2 = str2.Substring(i, 1);                              nzero = 0;                          }                      }                  }                  else                  {                      //该位是万亿,亿,万,元位等关键位                      if (str3 != "0" && nzero != 0)                      {                          ch1 = "零" + str1.Substring(temp * 1, 1);                          ch2 = str2.Substring(i, 1);                          nzero = 0;                      }                      else                      {                          if (str3 != "0" && nzero == 0)                          {                              ch1 = str1.Substring(temp * 1, 1);                              ch2 = str2.Substring(i, 1);                              nzero = 0;                          }                          else                          {                              if (str3 == "0" && nzero >= 3)                              {                                  ch1 = "";                                  ch2 = "";                                  nzero = nzero + 1;                              }                              else                              {                                  if (j >= 11)                                  {                                      ch1 = "";                                      nzero = nzero + 1;                                  }                                  else                                  {                                      ch1 = "";                                      ch2 = str2.Substring(i, 1);                                      nzero = nzero + 1;                                  }                              }                          }                      }                  }                  if (i == (j - 11) || i == (j - 3))                  {                      //如果该位是亿位或元位,则必须写上                      ch2 = str2.Substring(i, 1);                  }                  str5 = str5 + ch1 + ch2;                  if (i == j - 1 && str3 == "0")                  {                      //最后一位(分)为0时,加上“整”                      str5 = str5 + '整';                  }              }              if (num == 0)              {                  str5 = "零元整";              }              return str5;          }          /**/          /// <summary>          /// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num)          /// </summary>          /// <param name="num">用户输入的金额,字符串形式未转成decimal</param>          /// <returns></returns>          public string CmycurD(string numstr)          {              try              {                  decimal num = Convert.ToDecimal(numstr);                  return CmycurD(num);              }              catch              {                  return "非数字形式!";              }          }      }  }
[b]调用:[/b]
[u]复制代码[/u] 代码如下:
  EcanRMB rmb = new EcanRMB();   string Rmb = txtAmount.Text.Replace(",", "").Replace("-","");   label9.Text = rmb.CmycurD(Rmb);   label11.Text = Convert.ToDecimal(txtAmount.Text).ToString("###,###,###.00");
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部