#region 公共方法
public static
string ConvertToChineseNum(double
inputString)
{
string
numList =
"零壹贰叁肆伍陆柒捌玖";
string rmbList =
"分角元拾佰仟万拾佰仟亿拾佰仟万";
double number =
0;
string
tempOutString =
null;
try
{
number =
inputString;
}
catch
{
return
"传入参数非数字!";
}
if
(number >
9999999999999.99)
return
"超出范围的人民币值";
//将小数转化为整数字符串
string
tempNumberString = Convert.ToInt64(number *
100).ToString();
int tempNmberLength =
tempNumberString.Length;
int i = 0;
while (i <
tempNmberLength)
{
int oneNumber = Int32.Parse(tempNumberString.Substring(i,
1));
string oneNumberChar = numList.Substring(oneNumber,
1);
string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1,
1);
if (oneNumberChar !=
"零")
tempOutString += oneNumberChar +
oneNumberUnit;
else
{
if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" ||
oneNumberUnit ==
"零")
{
while
(tempOutString.EndsWith("零"))
{
tempOutString = tempOutString.Substring(0, tempOutString.Length -
1);
}
}
if (oneNumberUnit == "亿" || (oneNumberUnit == "万" &&
!tempOutString.EndsWith("亿")) || oneNumberUnit ==
"元")
{
tempOutString +=
oneNumberUnit;
}
else
{
bool tempEnd =
tempOutString.EndsWith("亿");
bool zeroEnd =
tempOutString.EndsWith("零");
if (tempOutString.Length >
1)
{
bool zeroStart = tempOutString.Substring(tempOutString.Length - 2,
2).StartsWith("零");
if (!zeroEnd && (zeroStart ||
!tempEnd))
tempOutString +=
oneNumberChar;
}
else
{
if (!zeroEnd &&
!tempEnd)
tempOutString +=
oneNumberChar;
}
}
}
i += 1;
}
while
(tempOutString.EndsWith("零"))
{
tempOutString = tempOutString.Substring(0, tempOutString.Length -
1);
}
while
(tempOutString.EndsWith("元"))
{
tempOutString = tempOutString +
"整";
}
return tempOutString;
}
#endregion
原文:http://www.cnblogs.com/haofaner/p/3567373.html