废话不多说,直接上代码:
/// <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; }
文章来源: C#数字转人民币大写