代码的主调函数为ConvertSum
它的参数是string类型的数字字符串
在ASP
NET中调用方式如下:
LabelText=ConvertSum(数字字符串);
其代码如下 /// 转换数字金额主函数(包括小数)
///
/// 数字字符串
/// 转换成中文大写后的字符串或者出错信息提示字符串
public string ConvertSum(string str)
{
if(!IsPositveDecimal(str))
return 输入的不是正数字!;
if(DoubleParse(str)>)
return 数字太大无法换算请输入一万亿元以下的金额;
char[] ch=new char[];
ch[]=; //小数点
string[] splitstr=null; //定义按小数点分割后的字符串数组
splitstr=strSplit(ch[]);//按小数点分割字符串
if(splitstrLength==) //只有整数部分
return ConvertData(str)+圆整;
else //有小数部分
{
string rstr;
rstr=ConvertData(splitstr[])+圆;//转换整数部分
rstr+=ConvertXiaoShu(splitstr[]);//转换小数部分
return rstr;
}
}
///
/// 判断是否是正数字字符串
///
/// 判断字符串
/// 如果是数字返回true否则返回false
public bool IsPositveDecimal(string str)
{
Decimal d;
try
{
d=DecimalParse(str);
}
catch(Exception)
{
return false;
}
if(d>)
return true;
else
return false;
}
///
/// 转换数字(整数)
///
/// 需要转换的整数数字字符串
/// 转换成中文大写后的字符串
public string ConvertData(string str)
{
string tmpstr=;
string rstr=;
int strlen=strLength;
if (strlen<=)//数字长度小于四位
{
rstr= ConvertDigit(str);
}
else
{
if (strlen<=)//数字长度大于四位小于八位
{
tmpstr=strSubstring(strlen);//先截取最后四位数字
rstr=ConvertDigit(tmpstr);//转换最后四位数字
tmpstr=strSubstring(strlen);//截取其余数字
//将两次转换的数字加上万后相连接
rstr= StringConcat(ConvertDigit(tmpstr)+万rstr);
rstr=rstrReplace(零零零);
}
else
if(strlen<=)//数字长度大于八位小于十二位
{
tmpstr=strSubstring(strlen);//先截取最后四位数字
rstr=ConvertDigit(tmpstr);//转换最后四位数字
tmpstr=strSubstring(strlen);//再截取四位数字
rstr= StringConcat(ConvertDigit(tmpstr)+万rstr);
tmpstr=strSubstring(strlen);
rstr= StringConcat(ConvertDigit(tmpstr)+亿rstr);
rstr=rstrReplace(零亿亿);
rstr=rstrReplace(零万零);
rstr=rstrReplace(零零零);
rstr=rstrReplace(零零零);
}
}
strlen=rstrLength;
if (strlen>=)
{
switch(rstrSubstring(strlen))
{
case 佰零:rstr=rstrSubstring(strlen)+佰; break;
case 仟零:rstr=rstrSubstring(strlen)+仟; break;
case 万零:rstr=rstrSubstring(strlen)+万;break;
case 亿零:rstr=rstrSubstring(strlen)+亿;break;
}
}
return rstr;
}
///
/// 转换数字(小数部分)
///
/// 需要转换的小数部分数字字符串
/// 转换成中文大写后的字符串
public string ConvertXiaoShu(string str)
{
int strlen=strLength ;
string rstr;
if(strlen==)
{
rstr=ConvertChinese(str)+角;
return rstr;
}
else
{
string tmpstr=strSubstring();
rstr=ConvertChinese(tmpstr)+角;
tmpstr=strSubstring();
rstr+=ConvertChinese(tmpstr)+分;
rstr=rstrReplace(零分);
rstr=rstrReplace(零角);
return rstr;
}
}
///
/// 转换数字
///
/// 转换的字符串(四位以内)
///
public string ConvertDigit(string str)
{
int strlen=strLength;
string rstr=;
switch (strlen)
{
case : rstr=ConvertChinese(str);break;
case : rstr=ConvertDigit(str);break;
case : rstr=ConvertDigit(str);break;
case : rstr=ConvertDigit(str);break;
}
rstr=rstrReplace(拾零拾);
strlen=rstrLength;
return rstr;
}
///
/// 转换四位数字
///
public string ConvertDigit(string str)
{
string str=strSubstring();
string str=strSubstring();
string str=strSubstring();
string str=strSubstring();
string rstring=;
rstring+=ConvertChinese(str)+仟;
rstring+=ConvertChinese(str)+佰;
rstring+=ConvertChinese(str)+拾;
rstring+=ConvertChinese(str);
rstring=rstringReplace(零仟零);
rstring=rstringReplace(零佰零);
rstring=rstringReplace(零拾零);
rstring=rstringReplace(零零零);
rstring=rstringReplace(零零零);
rstring=rstringReplace(零零零);
return rstring;
}
///
/// 转换三位数字
///
public string ConvertDigit(string str)
{
string str=strSubstring();
string str=strSubstring();
string str=strSubstring();
string rstring=;
rstring+=ConvertChinese(str)+佰;
rstring+=ConvertChinese(str)+拾;
rstring+=ConvertChinese(str);
rstring=rstringReplace(零佰零);
rstring=rstringReplace(零拾零);
rstring=rstringReplace(零零零);
rstring=rstringReplace(零零零);
return rstring;
}
///
/// 转换二位数字
///
public string ConvertDigit(string str)
{
string str=strSubstring();
string str=strSubstring();
string rstring=;
rstring+=ConvertChinese(str)+拾;
rstring+=ConvertChinese(str);
rstring=rstringReplace(零拾零);
rstring=rstringReplace(零零零);
return rstring;
}
///
/// 将一位数字转换成中文大写数字
///
public string ConvertChinese(string str)
{
//零壹贰三肆伍陆柒捌玖拾佰仟万亿圆整角分
string cstr=;
switch(str)
{
case : cstr=零;break;
case : cstr=壹;break;
case : cstr=贰;break;
case : cstr=三;break;
case : cstr=肆;break;
case : cstr=伍;break;
case : cstr=陆;break;
case : cstr=柒;break;
case : cstr=捌;break;
case : cstr=玖;break;
}
return(cstr);
}