js数字转中文金额

2016-11-01  本文已影响127人  encoded

functionchangeMoneyToChinese(money)

{

varcnNums= newArray("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//汉字的数字

varcnIntRadice= newArray("","拾","佰","仟");//基本单位

varcnIntUnits= newArray("","万","亿","兆");//对应整数部分扩展单位

varcnDecUnits= newArray("角","分","毫","厘");//对应小数部分单位

varcnInteger="整";//整数金额时后面跟的字符

varcnIntLast="元";//整型完以后的单位

varmaxNum=999999999999999.9999;//最大处理的数字

varIntegerNum;//金额整数部分

varDecimalNum;//金额小数部分

varChineseStr="";//输出的中文金额字符串

varparts;//分离金额后用的数组,预定义

if( money==""){

return"";

}

money=parseFloat(money);

//alert(money);

if( money>=maxNum ){

$.alert('超出最大处理数字');

return"";

}

if( money==0){

ChineseStr=cnNums[0]+cnIntLast+cnInteger;

//document.getElementById("show").value=ChineseStr;

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){//获取整型部分转换

zeroCount=0;

IntLen=IntegerNum.length;

for( i=0;i

n=IntegerNum.substr(i,1);

p=IntLen-i-1;

q=p/4;

m=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!=''){//小数部分

decLen=DecimalNum.length;

for( i=0; i

n=DecimalNum.substr(i,1);

if( n!='0'){

ChineseStr+=cnNums[Number(n)]+cnDecUnits[i];

}

}

}

if( ChineseStr==''){

ChineseStr+=cnNums[0]+cnIntLast+cnInteger;

}

else if( DecimalNum==''){

ChineseStr+=cnInteger;

}

returnChineseStr;

}

上一篇 下一篇

猜你喜欢

热点阅读