1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > .NET把小写数字金额转换成大写人民币金额的两种算法

.NET把小写数字金额转换成大写人民币金额的两种算法

时间:2023-09-25 06:29:44

相关推荐

.NET把小写数字金额转换成大写人民币金额的两种算法

第一种方法:

用正则表达式,C#方法如下

usingSystem.Text.RegularExpressions;//首先引入命名空间

privatestringDaXie(string money)

{

string s =double.Parse(money).ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");

string d =Regex.Replace(s,@"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))","${b}${z}");

returnRegex.Replace(d,".",delegate(Match m){return"负圆空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万億兆京垓秭穰"[m.Value[0]-'-'].ToString();});

}

第二种方法:

采用数组,C#方法如下

privatestringDaXie(string money)

{

//将小写金额转换成大写金额

doubleMyNumber=Convert.ToDouble(money);

String[]MyScale={"分","角","元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};

String[]MyBase={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};

String M ="";

bool isPoint =false;

if(money.IndexOf(".")!=-1)

{

money= money.Remove(money.IndexOf("."),1);

isPoint=true;

}

for(int i = money.Length; i >0; i--)

{

intMyData=Convert.ToInt16(money[money.Length- i].ToString());//?

M+=MyBase[MyData];//?

if(isPoint==true)

{

M+=MyScale[i-1];//?

}

else

{

M+=MyScale[i+1];//?

}

}

return M;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。