C#将输入的数字转换为人民币大写

/// <summary>
/// 数字转换为大写人民币表示
/// </summary>
/// <param name="strMoney"></param>        
public string MoneyToChinese(string strCurrentDigit)
{         
            // 1. 字符串切分
            string integral = "";  // 整数部分
            string dec = "";  // 小数部分
            string[] strDigitList = strCurrentDigit.Split(new char[] { '.' });
            if (strDigitList.Length > 1)
            {
                integral = strDigitList[0];
                dec = strDigitList[1];
            }
            else

            {
                integral = strDigitList[0];
                dec = "";
            }

            // 2. 数据准备         
            string[] radices = {"","拾", "佰", "仟"};
            string[] bigRadices = {"","万","亿"};
            string[] decimals = {"角","分"};
            string CN_DOLLAR = "元";
            string CN_SYMBOL = "";  // 人民币
            string CN_INTEGER = "整";

            string d = "";
            string outputCharacters = "";
            int zeroCount = 0;
            int p = 0;
            int quotient = 0;
            int modulus = 0;

            // 3. 整数部分
            if (integral.Length > 0) {
                zeroCount = 0;
                for (int i = 0; i < integral.Length; i++)
                {
                    p = integral.Length - i - 1;
                    d = integral.Substring(i, 1);
                    quotient = p / 4;
                    modulus = p % 4;
                    if (d == "0")
                    {
                        zeroCount++;
                    }
                    else
                    {
                        if (zeroCount > 0)
                        {
                           outputCharacters += "0";
                        }
                        zeroCount = 0;
                        outputCharacters += d + radices[modulus];
                    }
                    if (modulus == 0 && zeroCount < 4)
                    {
                        outputCharacters += bigRadices[quotient];
                    }
                }
                if (!string.IsNullOrEmpty(outputCharacters))
                { outputCharacters += CN_DOLLAR; }
            }
            // 4. 小数部分           
            if (dec != "") {
                for (int i = 0; i < dec.Length; i++) {
                    d = dec.Substring(i, 1);
                    if (d != "0") {
                        outputCharacters += d + decimals[i];
                    }
                }
            }
            // Confirm and return the final output string:
            if (outputCharacters == "") {
                outputCharacters = "0" + CN_DOLLAR;
            }
            if (dec == "") {
                outputCharacters += CN_INTEGER;
            }                       
            return outputCharacters;
}        

转自:https://blog.csdn.net/Simoral/article/details/80411583

猜你喜欢

转载自blog.csdn.net/yhj198927/article/details/89354195