using System;
using System.Collections.Generic;
using System.Text;

namespace ExamAnswer


{
public class ConverMoney

{
public static string ConvertToUpper(double inputNum)

{
string strTemp = inputNum.ToString("f2");
return ProcessLeft(strTemp)+ProcessRight(strTemp);
}


处理整数部分#region 处理整数部分

/**//// <summary>
/// 处理整数部分
/// </summary>
/// <param name="inputNum"></param>
/// <returns></returns>
private static string ProcessLeft(string inputNum)

{
int temp = Convert.ToInt32(inputNum.Substring(0, inputNum.IndexOf('.')));
Stack<string> processStack=new Stack<string>();

string[] separate =
{ "拾", "佰", "仟", "万", "十","佰","仟","亿" };
int i=0;
if(temp<10)

{
return temp.ToString();
}
else

{
while (true)

{
if (temp % 10 != 0)

{
if (i != 0)
processStack.Push(separate[i-1]);
processStack.Push(ConvertNumToUpper(temp % 10));
}
else

{
if (processStack.Count != 0 && processStack.Peek() != "零")
processStack.Push("零");
}
i++;
temp = temp / 10;
if (temp == 0)
break;
}
}
string returnStr = "";
while (processStack.Count != 0)
returnStr = returnStr + processStack.Pop();
return returnStr;
}
#endregion


处理小数部分#region 处理小数部分

/**//// <summary>
/// 处理小数部分
/// </summary>
/// <param name="inputNum"></param>
/// <returns></returns>
private static string ProcessRight(string inputNum)

{
int temp1=Convert.ToInt32(inputNum.Substring(inputNum.IndexOf('.') + 1,1));
int temp2 = Convert.ToInt32(inputNum.Substring(inputNum.IndexOf('.') + 2, 1));
if (temp1 == 0 && temp2 == 0)
return "圆整";
else
return "圆零"+ConvertNumToUpper(temp1) + "角" + ConvertNumToUpper(temp2) + "分";

}
#endregion


数字转换成大些#region 数字转换成大些

/**//// <summary>
/// 数字转换成大些
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
private static string ConvertNumToUpper(int input)

{

string[] UpperNum =
{ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒" ,"玖"};
if (input <= 9)

{
return UpperNum[input];
}
else

{
throw new Exception("转换错误");
}
}
#endregion

}
}

posted on
2007-08-30 10:49
空空佛
阅读(
546)
评论()
收藏
举报