/// <summary>
/// 单个数字转为大写
/// </summary>
/// <param name="c">小写阿拉伯数字 0---9</param>
/// <returns>大写数字</returns>
private string getint(char c)
{
string str = "";
switch (c)
{
case '0':
str = "零";
break;
case '1':
str = "壹";
break;
case '2':
str = "贰";
break;
case '3':
str = "叁";
break;
case '4':
str = "肆";
break;
case '5':
str = "伍";
break;
case '6':
str = "陆";
break;
case '7':
str = "柒";
break;
case '8':
str = "拐";
break;
case '9':
str = "玖";
break;
}
return str;
}
/// 把一个单元转为大写,如亿单元,万单元,个单元
/// </summary>
/// <param name="str">这个单元的小写数字(4位长,若不足,则前面补零)</param>
/// <param name="strDW">亿,万,元</param>
/// <returns>转换结果</returns>
private string getupper(string str, string strDW)
{
if (str == "0000")
return "";
string ret = "";
string tmp1 = this.getint(str[0]);
string tmp2 = this.getint(str[1]);
string tmp3 = this.getint(str[2]);
string tmp4 = this.getint(str[3]);
if (tmp1 != "零")
{
ret = ret + tmp1 + "仟";
}
else
{
ret = ret + tmp1;
}
if (tmp2 != "零")
{
ret = ret + tmp2 + "佰";
}
else
{
if (tmp1 != "零")//保证若有两个零'00',结果只有一个零,下同
ret = ret + tmp2;
}
if (tmp3 != "零")
{
ret = ret + tmp3 + "拾";
}
else
{
if (tmp2 != "零")
ret = ret + tmp3;
}
if (tmp4 != "零")
{
ret = ret + tmp4;
}
if (ret[0] == '零')//若第一个字符是'零',则去掉
ret = ret.Substring(1);
if (ret[ret.Length - 1] == '零')//若最后一个字符是'零',则去掉
ret = ret.Substring(0, ret.Length - 1);
return ret + strDW;//加上本单元的单位
}