.net 将数字转换为人民币大写

本文介绍了一种将数字转换为大写人民币的方法,包括代码实现及正则表达式的使用,确保转换后的文本符合人民币书写规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序中用到将数字转换为大写人民币,在网上找了一个方法,记录下来。

using System.Text;
using System.Text.RegularExpressions;

 ///<summary>
     ///将数字转换为人民币大写(以元为单位)
    ///</summary>
    ///<paramname="number"></param>
    ///<returns></returns>
       public static string GetNumber2CN(doublenumber)
       {
          StringBuilder cnStr = new StringBuilder();
           stringCnNumber = "零壹贰叁肆伍陆柒捌玖";
           stringCnUnit = "分角元拾佰仟万拾佰仟亿拾佰仟万";
           stringnumStr = number.ToString("#0.00").Replace(".", "");
           for (int i= 0; i < numStr.Length; i++)
           {
              int num =int.Parse(numStr.Substring(i, 1));
             cnStr.Append(CnNumber.Substring(num, 1) +CnUnit.Substring(numStr.Length - i - 1, 1));
           }
           while(Regex.IsMatch(cnStr.ToString(), "零零|零拾|零佰|零仟|零万|零亿|亿万"))
           {
              cnStr = cnStr.Replace("零拾","零");
              cnStr = cnStr.Replace("零佰","零");
              cnStr = cnStr.Replace("零仟","零");
              cnStr = cnStr.Replace("零万","万");
              cnStr = cnStr.Replace("零亿","亿");
              cnStr = cnStr.Replace("零零","零");
              cnStr = cnStr.Replace("亿万","亿零");
           }
           cnStr =cnStr.Replace("零元", "元").Replace("零角", "").Replace("零分", "");
           if(cnStr.ToString().StartsWith("元"))
           {
              returncnStr.ToString().Substring(1);
           }
           if(cnStr.ToString().EndsWith("元"))
           {
              return cnStr.ToString() +"整";
           }
           returncnStr.ToString();
       }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值