• 将money转换成大写汉字


    代码
      1   public class Money
      2         {
      3             /// <summary>
      4             /// 要转换的数字
      5             /// </summary>
      6             private double j;
      7             /// <summary>
      8             /// 
      9             /// </summary>
     10             private string[] NumChineseCharacter = new string[] { """""""""""""""""""" };
     11 
     12             public Money(double m)
     13             {
     14                 this.j = m;
     15             }
     16 
     17             /// <summary>
     18             /// 判断输入的数字是否大于double类型
     19             /// </summary>
     20             private bool IsNumber
     21             {
     22                 get
     23                 {
     24                     if (j > double.MaxValue || j <= 0)
     25                         return false;
     26                     else
     27                         return true;
     28                 }
     29             }
     30             /// <summary>
     31             /// 数字转换成大写汉字主函数
     32             /// </summary>
     33             /// <returns>返回转换后的大写汉字</returns>
     34             public string Convert()
     35             {
     36                 string bb = "";
     37                 if (IsNumber)
     38                 {
     39                     string str = j.ToString();
     40                     string[] Num = str.Split('.');
     41                     if (Num.Length == 1)
     42                     {
     43                         bb = NumberString(Num[0]) + "元整";
     44                         bb = bb.Replace("零零""");
     45                     }
     46                     else
     47                     {
     48                         bb = NumberString(Num[0]) + "";
     49                         bb += FloatString(Num[1]);
     50                         bb = bb.Replace("零零""");
     51                     }
     52                 }
     53                 else
     54                 {
     55                     MessageBox.Show("你输入的数字格式不正确或不是数字!");
     56                 }
     57                 return bb;
     58             }
     59             /// <summary>
     60             /// 小数位转换只支持两位的小数
     61             /// </summary>
     62             /// <param name="Num">转换的小数</param>
     63             /// <returns>小数转换成汉字</returns>
     64             private string FloatString(string Num)
     65             {
     66                 string cc = "";
     67                 if (Num.Length > 2)
     68                 {
     69                     throw new FormatException("小数位数过多.");
     70                 }
     71                 else
     72                 {
     73                     string bb = ConvertString(Num);
     74                     int len = bb.IndexOf("");
     75                     if (len != 0)
     76                     {
     77                         bb = bb.Replace("""");
     78                         if (bb.Length == 1)
     79                         {
     80                             cc = bb.Substring(01+ "角整";
     81                         }
     82                         else
     83                         {
     84                             cc = bb.Substring(01+ "";
     85                             cc += bb.Substring(11+ "";
     86                         }
     87                     }
     88                     else
     89                         cc = bb + "";
     90                 }
     91                 return cc;
     92             }
     93             /// <summary>
     94             /// 判断数字位数以进行拆分转换
     95             /// </summary>
     96             /// <param name="Num">要进行拆分的数字</param>
     97             /// <returns>转换成的汉字</returns>
     98             private string NumberString(string Num)
     99             {
    100                 string bb = "";
    101                 if (Num.Length <= 4)
    102                 {
    103                     bb = Convert4(Num);
    104                 }
    105                 else if (Num.Length > 4 && Num.Length <= 8)
    106                 {
    107                     bb = Convert4(Num.Substring(0, Num.Length - 4)) + "";
    108                     bb += Convert4(Num.Substring(Num.Length - 44));
    109                 }
    110                 else if (Num.Length > 8 && Num.Length <= 12)
    111                 {
    112                     bb = Convert4(Num.Substring(0, Num.Length - 8)) + "亿";
    113                     if (Convert4(Num.Substring(Num.Length - 84)) == "")
    114                         if (Convert4(Num.Substring(Num.Length - 44)) != "")
    115                             bb += "";
    116                         else
    117                             bb += "";
    118                     else
    119                         bb += Convert4(Num.Substring(Num.Length - 84)) + "";
    120                     bb += Convert4(Num.Substring(Num.Length - 44));
    121                 }
    122                 return bb;
    123             }
    124             /// <summary>
    125             /// 四位数字的转换
    126             /// </summary>
    127             /// <param name="Num">准备转换的四位数字</param>
    128             /// <returns>转换以后的汉字</returns>
    129             private string Convert4(string Num)
    130             {
    131                 string bb = "";
    132                 if (Num.Length == 1)
    133                 {
    134                     bb = ConvertString(Num);
    135                 }
    136                 else if (Num.Length == 2)
    137                 {
    138                     bb = ConvertString(Num);
    139                     bb = Convert2(bb);
    140                 }
    141                 else if (Num.Length == 3)
    142                 {
    143                     bb = ConvertString(Num);
    144                     bb = Convert3(bb);
    145                 }
    146                 else
    147                 {
    148                     bb = ConvertString(Num);
    149                     string cc = "";
    150                     string len = bb.Substring(04);
    151                     if (len != "零零零零")
    152                     {
    153                         len = bb.Substring(03);
    154                         if (len != "零零零")
    155                         {
    156                             bb = bb.Replace("零零零""");
    157                             if (bb.Length == 1)
    158                             {
    159                                 bb = bb.Substring(01+ "";
    160                             }
    161                             else
    162                             {
    163                                 if (bb.Substring(01!= "" && bb.Substring(02!= "")
    164                                     cc = bb.Substring(01+ "";
    165                                 else
    166                                     cc = bb.Substring(01);
    167                                 bb = cc + Convert3(bb.Substring(13));
    168                             }
    169                         }
    170                         else
    171                         {
    172                             bb = bb.Replace("零零零""");
    173                         }
    174                     }
    175                     else
    176                     {
    177                         bb = bb.Replace("零零零零""");
    178                     }
    179                 }
    180                 return bb;
    181             }
    182             /// <summary>
    183             /// 将数字转换成汉字
    184             /// </summary>
    185             /// <param name="Num">需要转换的数字</param>
    186             /// <returns>转换后的汉字</returns>
    187             private string ConvertString(string Num)
    188             {
    189                 string bb = "";
    190                 for (int i = 0; i < Num.Length; i++)
    191                 {
    192                     bb += NumChineseCharacter[int.Parse(Num.Substring(i, 1))];
    193                 }
    194                 return bb;
    195             }
    196             /// <summary>
    197             /// 两位数字的转换
    198             /// </summary>
    199             /// <param name="Num">两位数字</param>
    200             /// <returns>转换后的汉字</returns>
    201             private string Convert2(string Num)
    202             {
    203                 string bb = ""string cc = "";
    204                 string len = Num.Substring(01);
    205                 if (len != "")
    206                 {
    207                     bb = Num.Replace("""");
    208                     if (bb.Length == 1)
    209                     {
    210                         cc = bb.Substring(01+ "";
    211                     }
    212                     else
    213                     {
    214                         cc = bb.Substring(01+ "";
    215                         cc += bb.Substring(11);
    216                     }
    217                 }
    218                 else
    219                     cc = Num;
    220                 return cc;
    221             }
    222             /// <summary>
    223             /// 三位数字的转换
    224             /// </summary>
    225             /// <param name="Num">三位数字</param>
    226             /// <returns>转换后的汉字</returns>
    227             private string Convert3(string Num)
    228             {
    229                 string bb = ""string cc = "";
    230                 string len = Num.Substring(02);
    231                 if (len != "零零")
    232                 {
    233                     bb = Num.Replace("零零""");
    234                     if (bb.Length == 1)
    235                     {
    236                         bb = bb.Substring(01+ "";
    237                     }
    238                     else
    239                     {
    240                         if (bb.Substring(01!= "")
    241                             cc = bb.Substring(01+ "";
    242                         else
    243                             cc = bb.Substring(01);
    244                         bb = cc + Convert2(bb.Substring(12));
    245                     }
    246                 }
    247                 else
    248                 {
    249                     bb = Num.Replace("零零""");
    250                 }
    251                 return bb;
    252             }
    253         }
    254 
    255 //调用TextBox输入显示
    256  double m = Convert.ToDouble(textBox1.Text);
    257  Money money = new Money(m);
    258  textBox2.Text = money.Convert().ToString();
  • 相关阅读:
    python os的一些用法(-)
    python常用函数 time.strftime
    centos7 解压rar 文件
    centos7 开机启动设置
    python基础之Day15
    python基础之Day13
    python基础之Day12
    python基础之Day11
    python基础之Day10
    python基础之Day9
  • 原文地址:https://www.cnblogs.com/angleSJW/p/1845116.html
Copyright © 2020-2023  润新知