`
linsl
  • 浏览: 70705 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

金额数字大写转换

 
阅读更多

转载请注明链接:

//by linsl 2008-07-23 转化格式#.##
function numToCh(num)
{
	if(num=="")
		return "零元整";
	var ch_str="";

	for(var i=0;i<num.length;i++)
		{
			num=num.replace(",","");//替换千位分隔符
		}
	if(isNaN(num)||num=="0."||num==".0")
		{
			alert("请检查金额是否为有效数字的");
			return "";
		}
	if(num==0)
		return "零元整";
	var part=num.split(".");//将整数部分与小数部分分开
	
	if(part[0].length>12)
		{
			alert("数字超出大小写转换范围(0.01----999999999999.99)");
			return "";
		}
	
	var num_ch=new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
	var z_unit=new Array("元","拾","佰","仟","萬","拾","佰","仟","億","拾","佰","仟");
	var point=new Array("角","分","厘");
	
	//整数部分数据处理
	for(var i=0;i<part[0].length;i++)
		{
			ch_str+=num_ch[part[0].substring(i,i+1)]+z_unit[part[0].length-i-1];
		}
	//小数部分数据处理
	if(part.length>1)
	{
		if(part[1].length>2)
		{
			alert("数字超出大小写转换范围(0.01----999999999999.99)");
			return "";
		}
		for(var i=0;i<part[1].length;i++)
			{
				ch_str+=num_ch[part[1].substring(i,i+1)]+point[i];
			}
	}
	//转化后的字符串处理	
	for(i=0;i<4;i++)
	{
	ch_str=ch_str.replace("零億","億");
	ch_str=ch_str.replace("零萬","萬");
	ch_str=ch_str.replace("零仟","零");
	ch_str=ch_str.replace("零佰","零");
	ch_str=ch_str.replace("零拾","零");
	ch_str=ch_str.replace("零元","元");
	ch_str=ch_str.replace("億萬","億");
	ch_str=ch_str.replace("零零","零");
	ch_str=ch_str.replace("零角","零");
	ch_str=ch_str.replace("零分","");
	ch_str=ch_str.replace("零厘","");
}
	if(ch_str.substring(ch_str.length-1)==("零"))
		ch_str=ch_str.substring(0,ch_str.length-1)+"整";
	if(ch_str=="元整")
		ch_str="零元整";
	return ch_str;
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics