private string ToBigNumber(long number)
{
// 12345 一万贰仟叁佰肆拾伍
string[] mm ={ "", "拾", "佰", "仟", "万", "拾", "佰",
"仟", "亿", "拾", "佰", "仟", "万" };
string[] dx = { "零", "壹", "贰", "叁", "肆", "伍",
"陆", "柒", "捌", "玖", "拾" };
if (number == 0)
{
return dx[0];
}
string numberStr = number.ToString();
if (numberStr.Length > mm.Length)
{
throw new UserException("can not parser number, as it it too long.");
}
StringBuilder buff = new StringBuilder();
int flag = 0;
int preNum = -1;
for (int i = numberStr.Length - 1; i >= 0; i--)
{
string currentBit = numberStr.Substring(flag++, 1);
if (int.Parse(currentBit) == 0)// deal with 0.
{
if (preNum != 0)// deal with 000
{
buff.Append(dx[int.Parse(currentBit)]);
}
}
else
{
buff.Append(dx[int.Parse(currentBit)]).Append(mm[i]);
}
preNum = int.Parse(currentBit);
}
//remove the latest zero.
string result = buff.ToString();
if (result.EndsWith(dx[0]))
{
buff.Remove(buff.Length - 1, 1);
}
return buff.ToString();
}