日期:2014-05-19  浏览次数:20809 次

货币格式转换。
现在一字符串。。

20.00000

需要转换成人民币的格式

------解决方案--------------------
public class NumToRmb
{

public ArrayList chLen = new ArrayList();
public ArrayList ToRmb = new ArrayList();
//public string[] 位数=new string[]( "个 ", "拾 ", "百 ", "千 ", "万 ", "拾万 ", "百万 ", "千万 ", "亿 ");
public NumToRmb()
{

//
// TODO: 在此处添加构造函数逻辑
//
}
public string conversion(string sum)//传来的数字(字符型的)564122
{
string weishu = " ";
string s = " ";
chLen.Add( "元整 ");
chLen.Add( "拾 ");
chLen.Add( "佰 ");
chLen.Add( "仟 ");
chLen.Add( "万 ");
chLen.Add( "拾万 ");
chLen.Add( "佰万 ");
chLen.Add( "仟万 ");
chLen.Add( "亿 ");
ToRmb.Add( "零 ");
ToRmb.Add( "壹 ");
ToRmb.Add( "贰 ");
ToRmb.Add( "叁 ");
ToRmb.Add( "肆 ");
ToRmb.Add( "伍 ");
ToRmb.Add( "陆 ");
ToRmb.Add( "柒 ");
ToRmb.Add( "捌 ");
ToRmb.Add( "玖 ");
// string s=(string)位数[0];
int d = sum.Length;//一共有多少位
if (d < 6)
{
char[] f = sum.ToCharArray(0, d);
for (int i = 0; i < d; i++)
{
Object dd = f.GetValue(i);
weishu = dd.ToString();//实际数字
int ddd = Convert.ToInt16(weishu);
weishu = (string)ToRmb[ddd];
s += weishu + chLen[d - 1 - i];
}
return s;
}
else
{
char[] f = sum.ToCharArray(0, d);
for (int i = 0; i < d; i++)
{
if (d - i < 5)
{
Object dd = f.GetValue(i);
weishu = dd.ToString();//实际数字
int ddd = Convert.ToInt16(weishu);
weishu = (string)ToRmb[ddd];

s += weishu + chLen[d - 1 - i];
}
else
{

Object dd = f.GetValue(i);
weishu = dd.ToString();//实际数字
int ddd = Convert.ToInt16(weishu);
weishu = (string)ToRmb[ddd];
if (d - i == 5)
{
s += weishu + "万 ";
}
else
{
s += weishu + chLen[d - 5];
}
}
}
return s;
}

}
}
------解决方案--------------------
http://blog.csdn.net/honkerhero/archive/2007/02/02/1500684.aspx
------解决方案--------------------