程序中用到将数字转换为大写人民币,在网上找了一个方法,记录下来。
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();
}