温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#转换人民币大小金额

发布时间:2020-06-20 19:53:00 阅读:499 作者:linzheng 栏目:开发技术
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>
/// <summary>           /// 转换人民币大小金额           /// </summary>           /// <param name="num">金额</param>           /// <returns>返回大写形式</returns>           public static string GetChineseMoney(decimal num)          {              string str1 = "零壹贰叁肆伍陆柒捌玖";            //0-9所对应的汉字               string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"//数字位所对应的汉字               string str3 = "";    //从原num值中取出的值               string str4 = "";    //数字的字符串形式               string str5 = "";  //人民币大写金额形式               int i;    //循环变量               int j;    //num的值乘以100的字符串长度               string ch2 = "";    //数字的汉语读法               string ch3 = "";    //数字位的汉字读法               int nzero = 0;  //用来计算连续的零值是几个               int temp;            //从原num值中取出的值                if (DbUtils.Language.ToLower() == "en"return "";              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")                      {                          ch2 = "";                          ch3 = "";                          nzero = nzero + 1;                      }                      else                     {                          if (str3 != "0" && nzero != 0)                          {                              ch2 = "零" + str1.Substring(temp * 11);                              ch3 = str2.Substring(i, 1);                              nzero = 0;                          }                          else                         {                              ch2 = str1.Substring(temp * 11);                              ch3 = str2.Substring(i, 1);                              nzero = 0;                          }                      }                  }                  else                 {                      //该位是万亿,亿,万,元位等关键位                       if (str3 != "0" && nzero != 0)                      {                          ch2 = "零" + str1.Substring(temp * 11);                          ch3 = str2.Substring(i, 1);                          nzero = 0;                      }                      else                     {                          if (str3 != "0" && nzero == 0)                          {                              ch2 = str1.Substring(temp * 11);                              ch3 = str2.Substring(i, 1);                              nzero = 0;                          }                          else                         {                              if (str3 == "0" && nzero >= 3)                              {                                  ch2 = "";                                  ch3 = "";                                  nzero = nzero + 1;                              }                              else                             {                                  if (j >= 11)                                  {                                      ch2 = "";                                      nzero = nzero + 1;                                  }                                  else                                 {                                      ch2 = "";                                      ch3 = str2.Substring(i, 1);                                      nzero = nzero + 1;                                  }                              }                          }                      }                  }                  if (i == (j - 11) || i == (j - 3))                  {                      //如果该位是亿位或元位,则必须写上                       ch3 = str2.Substring(i, 1);                  }                  str5 = str5 + ch2 + ch3;                   if (i == j - 1 && str3 == "0")                  {                      //最后一位(分)为0时,加上“整”                       str5 = str5 + '整';                  }              }              if (num == 0)              {                  str5 = "零元整";              }              return str5;          } 

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×