c#

位置:IT落伍者 >> c# >> 浏览文章

C#中数字金额转换大写金额方法


发布日期:2019年03月16日
 
C#中数字金额转换大写金额方法
代码的主调函数为ConvertSum它的参数是string类型的数字字符串在ASPNET中调用方式如下:

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);

}

               

上一篇:Visual C#中用WMI获取远程计算

下一篇:用Visual C#调用Windows API函数