標籤:ast style index amp tun nes ice div 定義
1 //將金額數字轉換為大寫漢字的函數 2 function convertCurrency(money) { 3 //漢字的數字 4 var cnNums = new Array(‘零‘, ‘壹‘, ‘貳‘, ‘三‘, ‘肆‘, ‘伍‘, ‘陸‘, ‘柒‘, ‘捌‘, ‘玖‘); 5 //基本單位 6 var cnIntRadice = new Array(‘‘, ‘拾‘, ‘佰‘, ‘仟‘); 7 //對應整數部分擴充單位 8 var cnIntUnits = new Array(‘‘, ‘萬‘, ‘億‘, ‘兆‘); 9 //對應小數部分單位10 var cnDecUnits = new Array(‘角‘, ‘分‘, ‘毫‘, ‘厘‘);11 //整數金額時後面跟的字元12 var cnInteger = ‘整‘;13 //整型完以後的單位14 var cnIntLast = ‘元‘;15 //最大處理的數字16 var maxNum = 999999999999999.9999;17 //金額整數部分18 var integerNum;19 //金額小數部分20 var decimalNum;21 //輸出的中文金額字串22 var chineseStr = ‘‘;23 //分離金額後用的數組,預定義24 var parts;25 if (money == ‘‘) {26 return ‘‘;27 }28 money = parseFloat(money);29 if (money >= maxNum) {30 //超出最大處理數字31 return ‘‘;32 }33 if (money == 0) {34 chineseStr = cnNums[0] + cnIntLast + cnInteger;35 return chineseStr;36 }37 //轉換為字串38 money = money.toString();39 if (money.indexOf(‘.‘) == -1) {40 integerNum = money;41 decimalNum = ‘‘;42 }43 else {44 parts = money.split(‘.‘);45 integerNum = parts[0];46 decimalNum = parts[1].substr(0, 4);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 }60 else {61 if (zeroCount > 0) {62 chineseStr += cnNums[0];63 }64 //歸零65 zeroCount = 0;66 chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];67 }68 if (m == 0 && zeroCount < 4) {69 chineseStr += cnIntUnits[q];70 }71 }72 chineseStr += cnIntLast;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 if (chineseStr == ‘‘) {85 chineseStr += cnNums[0] + cnIntLast + cnInteger;86 }87 else if (decimalNum == ‘‘) {88 chineseStr += cnInteger;89 }90 return chineseStr;91 }
將金額數字轉換為大寫漢字的js函數