您的位置:首页 > 编程语言 > C#

关于C#实现阿拉伯数字转换成中文大写

2012-04-18 10:37 941 查看
publicenumChinese_Num
{
零=0,壹=1,贰=2,叁=3,肆=4,伍=5,陆=6,柒=7,捌=8,玖=9,点=10
}
publicenumUnit
{
拾=2,佰=3,仟=4,万=5,亿=9,兆=13
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringMoney=textBox1.Text.Trim();
try
{
Decimalmoney=Convert.ToDecimal(Money);
Money=money.ToString();
MessageBox.Show(TurnIntoChinese_Num(Money));
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
privatestringTurnIntoChinese_Num(stringmoney)
{
StringBuilderRMB=newStringBuilder();
//判断输入是否包含小数点
if(money.Contains('.'))
{
//如果小数点前只有一位
if(money.Split('.')[0].Length>1)
{
RMB.Append(GetInt(money.Split('.')[0]));
RMB.Append(GetOne(10)+GetFloat(money.Split('.')[1]));
}
else
{
RMB.Append(GetOne(Convert.ToInt32(money.Split('.')[0])));
RMB.Append(GetOne(10)+GetFloat(money.Split('.')[1]));
}
}
else
{
RMB.Append(GetInt(money));
}
returnRMB.ToString();
}
///<summary>
///转换整数部分
///</summary>
///<paramname="money"></param>
///<returns></returns>
privatestringGetInt(stringmoney)
{
StringBuilderRMB=newStringBuilder();
intcount=money.Length;
intIndex=Convert.ToInt32(count/4);
for(inti=Index;i>=0;i--)
{
if(GetUnder_four(money.Substring(0,money.Length-4*i))=="")
{
continue;
}
else
{
RMB.Append(GetUnder_four(money.Substring(0,money.Length-4*i))+GetIndex(4*i+1));
}
}
//if(i==0)
//{
//if(money!="0")
//{
//RMB.Append(GetUnder_four(money));
//}
//else
//{
//RMB.Append(GetOne(Convert.ToInt32(money)));
//}
//}
//else
//{

//else
//{
//RMB.Append(GetUnder_four(money.Substring(0,money.Length-4*i))+GetIndex(4*i+1));
//}
//}
returnRMB.ToString();
}
///<summary>
///转换4位以下的数字
///</summary>
///<paramname="money"></param>
///<returns></returns>
privatestringGetUnder_four(stringmoney)
{
StringBuilderRMB=newStringBuilder();
if(money.Length>4)
money=money.Substring(money.Length-4);
char[]numlist=money.ToCharArray();
for(inti=numlist.Length;i>0;i--)
{
charnum=numlist[numlist.Length-i];
if(num=='0')
{
if(i>1)
{
//如果连续为零,只显示一个
if(numlist[numlist.Length-i+1]!='0')
{
RMB.Append(GetOne(0));
}
else
continue;
}
}
else
{
RMB.Append(GetOne(Convert.ToInt16(num.ToString()))+GetIndex(i));
}
}
returnRMB.ToString();
}
///<summary>
///转化小数部分
///</summary>
///<paramname="money"></param>
///<returns></returns>
privatestringGetFloat(stringmoney)
{
StringBuildersb=newStringBuilder();
stringC_num=string.Empty;
for(inti=0;i<money.Length;i++)
{
intnum=Convert.ToInt32(money.Substring(i,1));
C_num=GetOne(num);
sb.Append(C_num);
}
returnsb.ToString();
}
///<summary>
///转换单个整数
///</summary>
///<paramname="money"></param>
///<returns></returns>
privatestringGetOne(intmoney)
{
stringChinese_Num=Enum.GetName(typeof(Chinese_Num),money);
returnChinese_Num;
}
///<summary>
///转化单位
///</summary>
///<paramname="index"></param>
///<returns></returns>
privatestringGetIndex(intindex)
{
stringChinese_Num=Enum.GetName(typeof(Unit),index);
returnChinese_Num;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐