一、将小写金额转换成大写金额的实现方法
1.1 实现思路 转换小写金额为大写金额的实现思路可以分为以下两个步骤:
1)将小写金额按照元、角、分的位数进行分解。
2)依照位数和数字匹配大写金额。
代码示例
public static string ConvertToChinese(string LowerMoney)
{
//得到转换的小写金额
string money = Convert.ToDouble(LowerMoney).ToString("0.00");
string[] moneyDigits = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
string[] moneyUnits = {"元", "角", "分", "拾", "佰", "仟", "万", "亿"};
string outPut = "";
int len = money.Length;
for (int i = 0; i < len; i++)
{
string s = "";
if (money[i] == '.')//处理角和分的情况
{
if (i == len - 1) s += '整';
else
{
s += moneyDigits[(int)money[i + 1] - 48] + moneyUnits[1];
if (i + 2 < len) s += moneyDigits[(int)money[i + 2] - 48] + moneyUnits[2];
else s += '整';
}
}
else//处理元的情况
{
int n = len - i - 1; // 从低位到高位
if (n % 4 == 0) s += moneyDigits[(int)money[i] - 48] + moneyUnits[n / 4 + 6];
else s += moneyDigits[(int)money[i] - 48] + moneyUnits[n % 4];
}
outPut += s;
}
return outPut;
}
效果如下: