C#数字转人民币大写

匿名 (未验证) 提交于 2019-12-03 00:18:01

废话不多说,直接上代码:

/// <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; }        
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!