将金额大写
/// <summary>
/// 描述:将输入的数字的人民币金额大写
/// </summary>
/// <param name="je">string 数字金额的字符串</param>
/// <returns>string 返回大写后的金额</returns>
public string JEDX(string je)
{
string SM = "零壹贰叁肆伍陆柒捌玖";//要用到的数字
string DW = "分角元拾佰仟万拾佰仟亿拾佰仟万";//要用到的单位
string DXJE;//要返回的大写金额
if(9999999999999.99<double.Parse(je))
{
DXJE = "数字超出人民币的范围";
}
//>>如果输入的数字符合条件
else
{
if(-1 == je.IndexOf("."))
{
je = je + "00";
}
//>>如果输入的数字中含有小数点
else
{
string XSBF = je.Split(new char[] {'.'},2)[1];//小数部分
if (0 == XSBF.Length )//如果没有小数位,补齐两位小数
{
je = je + "00";
}
else if (1 == XSBF.Length)//如果小数位只一位
{
je = je + "0";
}
//>>如果小数位大于3位,四舍五入
else if (XSBF.Length > 2)
{
double dje = double.Parse(je);
//>>如果小数部分的第三位大于5
if (int.Parse(XSBF.Substring(2,1)) >= 5)
{
dje = dje + 0.01;
je = dje.ToString();
}
//>>如果小数部分的第三位大于5
je = je.Substring(0,je.Length-(XSBF.Length-2));//将原数舍掉后面的部分只保留两位小数
}
//>>如果小数位大于3位,四舍五入
}
//>>如果输入的数字中含有小数点
je = je.Replace(".","");//去掉小数点
DXJE = "整";
int dw;//单位的索引
int shu;//数的索引
//>>开始从金额的最后一位开始大写
for (shu=je.Length-1,dw=0;shu>=0;shu--,dw++)
{
int w = int.Parse(je.Substring(shu,1));//输入数字的第shu位
DXJE = DW.Substring(dw,1) + DXJE;
DXJE = SM.Substring(w,1) + DXJE;
}
//>>开始从金额的最后一位开始大写
}
//>>如果输入的数字符合条件
if(DXJE.Substring(0,1)=="元")
{
DXJE = DXJE.Substring(1,DXJE.Length-1);
}
return DXJE;
}
浙公网安备 33010602011771号