public static string MoneyToUpper(string strAmount)
{
string functionReturnValue =null;
bool IsNegative =false; // 是否是负数
if (strAmount.Trim().Substring(0, 1) =="-")
{
// 是负数则先转为正数
strAmount = strAmount.Trim().Remove(0, 1);
IsNegative =true;
}
string strLower =null;
string strUpart =null;
string strUpper =null;
int iTemp =0;
// 保留两位小数 123.489→123.49 123.4→123.4
strAmount = Math.Round(double.Parse(strAmount), 2).ToString();
if (strAmount.IndexOf(".") >0)
{
if (strAmount.IndexOf(".") == strAmount.Length -2)
{
strAmount = strAmount +"0";
}
}
else
{
strAmount = strAmount +".00";
}
strLower = strAmount;
iTemp =1;
strUpper ="";
while (iTemp <= strLower.Length)
{
switch (strLower.Substring(strLower.Length - iTemp, 1))
{
case".":
strUpart ="圆";
break;
case"0":
strUpart ="零";
break;
case"1":
strUpart ="壹";
break;
case"2":
strUpart ="贰";
break;
case"3":
strUpart ="叁";
break;
case"4":
strUpart ="肆";
break;
case"5":
strUpart ="伍";
break;
case"6":
strUpart ="陆";
break;
case"7":
strUpart ="柒";
break;
case"8":
strUpart ="捌";
break;
case"9":
strUpart ="玖";
break;
}
switch (iTemp)
{
case1:
strUpart = strUpart +"分";
break;
case2:
strUpart = strUpart +"角";
break;
case3:
strUpart = strUpart +"";
break;
case4:
strUpart = strUpart +"";
break;
case5:
strUpart = strUpart +"拾";
break;
case6:
strUpart = strUpart +"佰";
break;
case7:
strUpart = strUpart +"仟";
break;
case8:
strUpart = strUpart +"万";
break;
case9:
strUpart = strUpart +"拾";
break;
case10:
strUpart = strUpart +"佰";
break;
case11:
strUpart = strUpart +"仟";
break;
case12:
strUpart = strUpart +"亿";
break;
case13:
strUpart = strUpart +"拾";
break;
case14:
strUpart = strUpart +"佰";
break;
case15:
strUpart = strUpart +"仟";
break;
case16:
strUpart = strUpart +"万";
break;
default:
strUpart = strUpart +"";
break;
}
strUpper = strUpart + strUpper;
iTemp = iTemp +1;
}
strUpper = strUpper.Replace("零拾", "零");
strUpper = strUpper.Replace("零佰", "零");
strUpper = strUpper.Replace("零仟", "零");
strUpper = strUpper.Replace("零零零", "零");
strUpper = strUpper.Replace("零零", "零");
strUpper = strUpper.Replace("零角零分", "整");
strUpper = strUpper.Replace("零分", "整");
strUpper = strUpper.Replace("零角", "零");
strUpper = strUpper.Replace("零亿零万零圆", "亿圆");
strUpper = strUpper.Replace("亿零万零圆", "亿圆");
strUpper = strUpper.Replace("零亿零万", "亿");
strUpper = strUpper.Replace("零万零圆", "万圆");
strUpper = strUpper.Replace("零亿", "亿");
strUpper = strUpper.Replace("零万", "万");
strUpper = strUpper.Replace("零圆", "圆");
strUpper = strUpper.Replace("零零", "零");
// 对壹圆以下的金额的处理
if (strUpper.Substring(0, 1) =="圆")
{
strUpper = strUpper.Substring(1, strUpper.Length -1);
}
if (strUpper.Substring(0, 1) =="零")
{
strUpper = strUpper.Substring(1, strUpper.Length -1);
}
if (strUpper.Substring(0, 1) =="角")
{
strUpper = strUpper.Substring(1, strUpper.Length -1);
}
if (strUpper.Substring(0, 1) =="分")
{
strUpper = strUpper.Substring(1, strUpper.Length -1);
}
if (strUpper.Substring(0, 1) =="整")
{
strUpper ="零圆整";
}
functionReturnValue = strUpper;
if (IsNegative ==true)
{
return"负"+ functionReturnValue;
}
else
{
return functionReturnValue;
}
}