JS实现将数字金额转换为大写人民币汉字的方法
本文实例讲述了JS实现将数字金额转换为大写人民币汉字的方法。分享给大家供大家参考,具体如下:
//代码如下所示: functionconvertCurrency(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){ //超出最大处理数字 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; }
PS:这里再为大家提供一款在线工具供大家参考:
人民币大写在线转换工具:
http://tools.jb51.net/zhuanhuanqi/rmbupper
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》及《JavaScript遍历算法与技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。