function convertCurrency(money) { ?//汉字的数字 ?var cnNums = new Array(‘零‘, ‘壹‘, ‘贰‘, ‘叁‘, ‘肆‘, ‘伍‘, ‘陆‘, ‘柒‘, ‘捌‘, ‘玖‘); ?//基本单位 ?var cnIntRadice = new Array(‘‘, ‘拾‘, ‘佰‘, ‘仟‘); ?//对应整数部分扩展单位 ?var cnIntUnits = new Array(‘‘, ‘万‘, ‘亿‘, ‘兆‘); ?//对应小数部分单位 ?var cnDecUnits = new Array(‘角‘, ‘分‘, ‘毫‘, ‘厘‘); ?//整数金额时后面跟的字符 ?var cnInteger = ‘整‘; ?//整型完以后的单位 ?var cnIntLast = ‘元‘; ?//最大处理的数字 ?var maxNum = 999999999999999.9999; ?//金额整数部分 ?var integerNum; ?//金额小数部分 ?var decimalNum; ?//输出的中文金额字符串 ?var chineseStr = ‘‘; ?//分离金额后用的数组,预定义 ?var parts; ?if (money == ‘‘) { return ‘‘; } ?money = parseFloat(money); ?if (money >= maxNum) { ???//超出最大处理数字 ???return ‘‘; ?} ?if (money == 0) { ???chineseStr = cnNums[0] + cnIntLast + cnInteger; ???return chineseStr; ?} ?//转换为字符串 ?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) { ???var zeroCount = 0; ???var IntLen = integerNum.length; ???for (var i = 0; i < IntLen; i++) { ?????var n = integerNum.substr(i, 1); ?????var p = IntLen - i - 1; ?????var q = p / 4; ?????var 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 != ‘‘) { ???var decLen = decimalNum.length; ???for (var i = 0; i < decLen; i++) { ?????var 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; ?} ?return chineseStr;}
JS实现将数字金额转换为大写人民币汉字
原文地址:https://www.cnblogs.com/Super-scarlett/p/10559332.html