分享
 
 
 

C#实现阿拉伯数字转换成中文大写金额代码

王朝c#·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

以下C#代码实现了将阿拉伯数字转换成中文大写金额的功能,并Visual Studio.NET 2003 下调试基本通过(未经严格测试,希望各位发现错误后与作者联系fanz2000@sohu.com,或直接在csdn上回帖告知)。

代码的主调函数为ConvertSum,它的参数是string类型的数字字符串。在ASP.NET中调用方式如下:

Label1.Text=ConvertSum("数字字符串");

其代码如下:

//作者:fanz2000

//Email:fanz2000@sohu.com

///

/// 转换数字金额主函数(包括小数)

///

/// 数字字符串

/// 转换成中文大写后的字符串或者出错信息提示字符串

public string ConvertSum(string str)

{

if(!IsPositveDecimal(str))

return "输入的不是正数字!";

if(Double.Parse(str)999999999999.99)

return "数字太大,无法换算,请输入一万亿元以下的金额";

char[] ch=new char[1];

ch[0]='.'; //小数点

string[] splitstr=null; //定义按小数点分割后的字符串数组

splitstr=str.Split(ch[0]);//按小数点分割字符串

if(splitstr.Length==1) //只有整数部分

return ConvertData(str)+"圆整";

else //有小数部分

{

string rstr;

rstr=ConvertData(splitstr[0])+"圆";//转换整数部分

rstr+=ConvertXiaoShu(splitstr[1]);//转换小数部分

return rstr;

}

}

///

/// 判断是否是正数字字符串

///

/// 判断字符串

/// 如果是数字,返回true,否则返回false

public bool IsPositveDecimal(string str)

{

Decimal d;

try

{

d=Decimal.Parse(str);

}

catch(Exception)

{

return false;

}

if(d0)

return true;

else

return false;

}

///

/// 转换数字(整数)

///

/// 需要转换的整数数字字符串

/// 转换成中文大写后的字符串

public string ConvertData(string str)

{

string tmpstr="";

string rstr="";

int strlen=str.Length;

if (strlen<=4)//数字长度小于四位

{

rstr= ConvertDigit(str);

}

else

{

if (strlen<=8)//数字长度大于四位,小于八位

{

tmpstr=str.Substring(strlen-4,4);//先截取最后四位数字

rstr=ConvertDigit(tmpstr);//转换最后四位数字

tmpstr=str.Substring(0,strlen-4);//截取其余数字

//将两次转换的数字加上孺后相连接

rstr= String.Concat(ConvertDigit(tmpstr)+"孺",rstr);

rstr=rstr.Replace("零孺","孺");

rstr=rstr.Replace("零零","零");

}

else

if(strlen<=12)//数字长度大于八位,小于十二位

{

tmpstr=str.Substring(strlen-4,4);//先截取最后四位数字

rstr=ConvertDigit(tmpstr);//转换最后四位数字

tmpstr=str.Substring(strlen-8,4);//再截取四位数字

rstr= String.Concat(ConvertDigit(tmpstr)+"孺",rstr);

tmpstr=str.Substring(0,strlen-8);

rstr= String.Concat(ConvertDigit(tmpstr)+"?",rstr);

rstr=rstr.Replace("零?","?");

rstr=rstr.Replace("零孺","零");

rstr=rstr.Replace("零零","零");

rstr=rstr.Replace("零零","零");

}

}

strlen=rstr.Length;

if (strlen=2)

{

switch(rstr.Substring(strlen-2,2))

{

case "佰零":rstr=rstr.Substring(0,strlen-2)+"佰"; break;

case "仟零":rstr=rstr.Substring(0,strlen-2)+"仟"; break;

case "孺零":rstr=rstr.Substring(0,strlen-2)+"孺";break;

case "?零":rstr=rstr.Substring(0,strlen-2)+"?";break;

}

}

return rstr;

}

///

/// 转换数字(小数部分)

///

/// 需要转换的小数部分数字字符串

/// 转换成中文大写后的字符串

public string ConvertXiaoShu(string str)

{

int strlen=str.Length ;

string rstr;

if(strlen==1)

{

rstr=ConvertChinese(str)+"角";

return

rstr;

}

else

{

string tmpstr=str.Substring(0,1);

rstr=ConvertChinese(tmpstr)+"角";

tmpstr=str.Substring(1,1);

rstr+=ConvertChinese(tmpstr)+"分";

rstr=rstr.Replace("零分","");

rstr=rstr.Replace("零角","");

return rstr;

}

}

///

/// 转换数字

///

/// 转换的字符串(四位以内)

///

public string ConvertDigit(string str)

{

int strlen=str.Length;

string rstr="";

switch (strlen)

{

case 1: rstr=ConvertChinese(str);break;

case 2: rstr=Convert2Digit(str);break;

case 3: rstr=Convert3Digit(str);break;

case 4: rstr=Convert4Digit(str);break;

}

rstr=rstr.Replace("拾零","拾");

strlen=rstr.Length;

return rstr;

}

///

/// 转换四位数字

///

public string Convert4Digit(string str)

{

string str1=str.Substring(0,1);

string str2=str.Substring(1,1);

string str3=str.Substring(2,1);

string str4=str.Substring(3,1);

string rstring="";

rstring+=ConvertChinese(str1)+"仟";

rstring+=ConvertChinese(str2)+"佰";

rstring+=ConvertChinese(str3)+"拾";

rstring+=ConvertChinese(str4);

rstring=rstring.Replace("零仟","零");

rstring=rstring.Replace("零佰","零");

rstring=rstring.Replace("零拾","零");

rstring=rstring.Replace("零零","零");

rstring=rstring.Replace("零零","零");

rstring=rstring.Replace("零零","零");

return rstring;

}

///

/// 转换三位数字

///

public string Convert3Digit(string str)

{

string str1=str.Substring(0,1);

string str2=str.Substring(1,1);

string str3=str.Substring(2,1);

string rstring="";

rstring+=ConvertChinese(str1)+"佰";

rstring+=ConvertChinese(str2)+"拾";

rstring+=ConvertChinese(str3);

rstring=rstring.Replace("零佰","零");

rstring=rstring.Replace("零拾","零");

rstring=rstring.Replace("零零","零");

rstring=rstring.Replace("零零","零");

return rstring;

}

///

/// 转换二位数字

///

public string Convert2Digit(string str)

{

string str1=str.Substring(0,1);

string str2=str.Substring(1,1);

string rstring="";

rstring+=ConvertChinese(str1)+"拾";

rstring+=ConvertChinese(str2);

rstring=rstring.Replace("零拾","零");

rstring=rstring.Replace("零零","零");

return rstring;

}

///

/// 将一位数字转换成中文大写数字

///

public string ConvertChinese(string str)

{

//"零壹贰叁肆伍陆柒捌玖拾佰仟孺?圆整角分"

string cstr="";

switch(str)

{

case "0": cstr="零";break;

case "1": cstr="壹";break;

case "2": cstr="贰";break;

case "3": cstr="叁";break;

case "4": cstr="肆";break;

case "5": cstr="伍";break;

case "6": cstr="陆";break;

case "7": cstr="柒";break;

case "8": cstr="捌";break;

case "9": cstr="玖";break;

}

return(cstr);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有