将数字转换成大写的人民币表达式的js函数
将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码
functionchangeNumMoneyToChinese(money){ varcnNums=newArray("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//汉字的数字 varcnIntRadice=newArray("","拾","佰","仟");//基本单位 varcnIntUnits=newArray("","万","亿","兆");//对应整数部分扩展单位 varcnDecUnits=newArray("角","分","毫","厘");//对应小数部分单位 varcnInteger="整";//整数金额时后面跟的字符 varcnIntLast="元";//整型完以后的单位 varmaxNum=999999999999999.9999;//最大处理的数字 varIntegerNum;//金额整数部分 varDecimalNum;//金额小数部分 varChineseStr="";//输出的中文金额字符串 varparts;//分离金额后用的数组,预定义 if(money==""){ return""; } money=parseFloat(money); if(money>=maxNum){ alert('超出最大处理数字'); return""; } if(money==0){ ChineseStr=cnNums[0]+cnIntLast+cnInteger; returnChineseStr; } money=money.toString();//转换为字符串 if(money.indexOf(".")==-1){ IntegerNum=money; DecimalNum=''; }else{ parts=money.split("."); IntegerNum=parts[0]; DecimalNum=parts[1].substr(0,4); } if(parseInt(IntegerNum,10)>0){//获取整型部分转换 varzeroCount=0; varIntLen=IntegerNum.length; for(vari=0;i<IntLen;i++){ varn=IntegerNum.substr(i,1); varp=IntLen-i-1; varq=p/4; varm=p%4; if(n=="0"){ zeroCount++; }else{ if(zeroCount>0){ ChineseStr+=cnNums[0]; } zeroCount=0;//归零 ChineseStr+=cnNums[parseInt(n)]+cnIntRadice[m]; } if(m==0&&zeroCount<4){ ChineseStr+=cnIntUnits[q]; } } ChineseStr+=cnIntLast; //整型部分处理完毕 } if(DecimalNum!=''){//小数部分 vardecLen=DecimalNum.length; for(vari=0;i<decLen;i++){ varn=DecimalNum.substr(i,1); if(n!='0'){ ChineseStr+=cnNums[Number(n)]+cnDecUnits[i]; } } } if(ChineseStr==''){ ChineseStr+=cnNums[0]+cnIntLast+cnInteger; }elseif(DecimalNum==''){ ChineseStr+=cnInteger; } returnChineseStr; }