- 可二次开发成支持数字输出或者中文输出
- 默认从万开始,因为1000可以轻松辨别,当然也可以二次扩展
- 源代码
var convertCurrency=function(){ var cnNums = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); var cnIntRadice = new Array('', '0', '00', '000'); var cnIntUnits = new Array('', '万', '亿', '兆'); var cnDecUnits = new Array('角', '分', '毫', '厘'); 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; 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; } else if (decimalNum == '') { chineseStr; } return chineseStr; }
就是这样啦。