虽然网上的金额大小写转换的例子数不胜数,但还是想自己写一个,这样思路会更清晰一些吧。呵呵,可是写来写去还是不觉得写的好。但总归是自己的孩子,说到孩子,昨天还真梦到一个,我抱着他,那么小,真怕我把他给摔了。。。幸好只是个梦~~~
我想将我做成的DLL上传,可这里好像没有地方传哦,那我只好在资源里上传啰,除了DLL还有一个调用的说明,很详细的。希望大家多提宝贵意建!!!
以下是源代码:
using System;
public class rmbconvert
{
public String convert(String rmb0)
{
//String rmb = Console.ReadLine();
String returnvalue = "";
rmb0 = rmb0.Replace(",","");
String rmb = rmb0;
char[] s = new char[10] {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
char[] s1 = new char[15] {'分','角','元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万'};
String rmb1 = rmb;
String rmb2 = "";
if (rmb.IndexOf('.') != -1)
{
rmb1 = rmb.Substring(0, rmb.IndexOf('.'));
rmb2 = rmb.Substring(rmb.IndexOf('.') + 1, 2);
if(rmb1.Length > 13)
{
returnvalue = "超出了人民币的最大金额";
return returnvalue;
}
for (int i = rmb1.Length; i > 0; i--)
{
int m = int.Parse(rmb1.Substring(rmb1.Length - i, 1));
returnvalue += s[m].ToString() + s1[i + 1];
returnvalue = returnvalue.Replace("零仟", "");
returnvalue = returnvalue.Replace("零佰", "");
returnvalue = returnvalue.Replace("零亿", "亿");
returnvalue = returnvalue.Replace("零万", "万");
returnvalue = returnvalue.Replace("零元", "元");
if (rmb1.Length >= 3)
{
if (i == rmb1.Length - 1)
{
if (m == 0)
{
returnvalue = returnvalue.Replace("零拾", "零");
}
}
}
else
{
returnvalue = returnvalue.Replace("零拾", "");
}
returnvalue = returnvalue.Replace("零零", "零");
}
int n = int.Parse(rmb2.Substring(0, 1));
int o = int.Parse(rmb2.Substring(1, 1));
if(n == 0 && o == 0)
{
returnvalue += "整";
}
if(n != 0)
{
returnvalue += s[n].ToString() + s1[1];
if (o != 0)
{
returnvalue += s[o].ToString() + s1[0];
}
}
if(n == 0 && o != 0)
{
returnvalue += s[n].ToString(); // + s1[0]
returnvalue += s[o].ToString() + s1[0];
}
}
else
{
if(rmb.Length > 13)
{
returnvalue = "超出了人民币的最大金额";
return returnvalue;
}
for (int i = rmb.Length; i > 0; i--)
{
int m = int.Parse(rmb.Substring(rmb.Length - i, 1));
returnvalue += s[m].ToString() + s1[i + 1];
returnvalue = returnvalue.Replace("零仟", "");
returnvalue = returnvalue.Replace("零佰", "");
returnvalue = returnvalue.Replace("零亿", "亿");
returnvalue = returnvalue.Replace("零万", "万");
returnvalue = returnvalue.Replace("零元", "元");
if (rmb.Length >= 3)
{
if (i == rmb.Length - 1)
{
if (m == 0)
{
returnvalue = returnvalue.Replace("零拾", "零");
}
}
}
else
{
returnvalue = returnvalue.Replace("零拾", "");
}
returnvalue = returnvalue.Replace("零零", "零");
}
returnvalue += "整";
}
returnvalue = returnvalue.Replace("零仟", "零");
returnvalue = returnvalue.Replace("零佰", "零");
returnvalue = returnvalue.Replace("零拾", "零");
returnvalue = returnvalue.Replace("零亿", "亿");
returnvalue = returnvalue.Replace("零仟", "零");
returnvalue = returnvalue.Replace("零佰", "零");
returnvalue = returnvalue.Replace("零拾", "零");
returnvalue = returnvalue.Replace("零万", "万");
returnvalue = returnvalue.Replace("零仟", "零");
returnvalue = returnvalue.Replace("零佰", "零");
returnvalue = returnvalue.Replace("零拾", "零");
returnvalue = returnvalue.Replace("零元", "元");
returnvalue = returnvalue.Replace("零零", "零");
returnvalue = returnvalue.Replace("零零", "零");
returnvalue = returnvalue.Replace("零零", "零");
returnvalue = returnvalue.Replace("零零", "零");
returnvalue = returnvalue.Replace("零零", "零");
returnvalue = returnvalue.Replace("零零", "零");
returnvalue = returnvalue.Replace("亿万", "亿");
return returnvalue;
}
}