/// <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