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程序设计有所帮助。