代码如下:
1 function convertCurrency(money) { 2 //汉字的数字 3 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); 4 //基本单位 5 var cnIntRadice = new Array('', '拾', '佰', '仟'); 6 //对应整数部分扩展单位 7 var cnIntUnits = new Array('', '万', '亿', '兆'); 8 //对应小数部分单位 9 var cnDecUnits = new Array('角', '分', '毫', '厘'); 10 //整数金额时后面跟的字符 11 var cnInteger = '整'; 12 //整型完以后的单位 13 var cnIntLast = '元'; 14 //最大处理的数字 15 var maxNum = 999999999999999.9999; 16 //金额整数部分 17 var integerNum; 18 //金额小数部分 19 var decimalNum; 20 //输出的中文金额字符串 21 var chineseStr = ''; 22 //分离金额后用的数组,预定义 23 var parts; 24 25 if (money == '') { return ''; } 26 27 money = parseFloat(money); 28 if (money >= maxNum) { 29 //超出最大处理数字 30 return ''; 31 } 32 if (money == 0) { 33 chineseStr = cnNums[0] + cnIntLast + cnInteger; 34 return chineseStr; 35 } 36 37 //转换为字符串 38 money = money.toString(); 39 if (money.indexOf('.') == -1) { 40 integerNum = money; 41 decimalNum = ''; 42 } else { 43 parts = money.split('.'); 44 integerNum = parts[0]; 45 decimalNum = parts[1].substr(0, 4); 46 } 47 48 //获取整型部分转换 49 if (parseInt(integerNum, 10) > 0) { 50 var zeroCount = 0; 51 var IntLen = integerNum.length; 52 for (var i = 0; i < IntLen; i++) { 53 var n = integerNum.substr(i, 1); 54 var p = IntLen - i - 1; 55 var q = p / 4; 56 var m = p % 4; 57 if (n == '0') { 58 zeroCount++; 59 } else { 60 if (zeroCount > 0) { 61 chineseStr += cnNums[0]; 62 } 63 //归零 64 zeroCount = 0; 65 chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; 66 } 67 if (m == 0 && zeroCount < 4) { 68 chineseStr += cnIntUnits[q]; 69 } 70 } 71 chineseStr += cnIntLast; 72 } 73 74 //小数部分 75 if (decimalNum != '') { 76 var decLen = decimalNum.length; 77 for (var i = 0; i < decLen; i++) { 78 var n = decimalNum.substr(i, 1); 79 if (n != '0') { 80 chineseStr += cnNums[Number(n)] + cnDecUnits[i]; 81 } 82 } 83 } 84 85 if (chineseStr == '') { 86 chineseStr += cnNums[0] + cnIntLast + cnInteger; 87 } else if (decimalNum == '') { 88 chineseStr += cnInteger; 89 } 90 91 return chineseStr; 92 }