<!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>JS将数字转换为中文</title> </head> <body> <script>// 定义转换函数function transform(tranvalue){try{var i=1;var dw2 = new Array("","万","亿");//大单位var dw1 = new Array("拾","佰","仟");//小单位var dw = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用//以下是小写转换成大写显示在合计大写的文本框中 //分离整数与小数var source = splits(tranvalue);var num = source[0];var dig = source[1];//转换整数部分var k1=0;//计小单位var k2=0;//计大单位var sum = 0;var str="";var len = source[0].length;//整数的长度for(i=1;i<=len;i++){var n = source[0].charAt(len-i);//取得某个位数上的数字var bn = 0;if(len-i-1>=0){bn = source[0].charAt(len-i-1);//取得某个位数前一位上的数字 }sum = sum+Number(n);if(sum!=0){str = dw[Number(n)].concat(str);//取得该数字对应的大写数字,并插入到str字符串的前面if(n=='0')sum = 0;}if(len-i-1>=0){//在数字范围内if(k1!=3){//加小单位if(bn!=0){str = dw1[k1].concat(str);}k1++;}else{//不加小单位,加大单位 k1=0;var temp = str.charAt(0);if(temp=="万" || temp=="亿")//若大单位前没有数字则舍去大单位 str = str.substr( 1, str.length-1);str = dw2[k2].concat(str);sum = 0;}}if(k1==3)//小单位到千则大单位进一 { k2++;}}//转换小数部分var strdig="";if(dig!=""){var n = dig.charAt(0);if(n!=0){strdig += dw[Number(n)]+"角";//加数字 }var n = dig.charAt(1);if(n!=0){strdig += dw[Number(n)]+"分";//加数字 }}str += "元"+strdig;}catch(e){return "0元";}return str;}//拆分整数与小数function splits(tranvalue){var value = new Array('','');temp = tranvalue.split(".");for(var i=0;i<temp.length;i++){value[i] = temp[i];}return value;}// 调用var a = '12345678';var b = transform(a);console.log(b);</script> </body> </html>
运行后的结果:
壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元