js將阿拉伯數字轉換成大寫金額
阿新 • • 發佈:2019-01-05
function changeMoneyToChinese(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 ){ $.alert('超出最大處理數字'); return ""; } if( money == 0 ){ ChineseStr = cnNums[0]+cnIntLast+cnInteger; //document.getElementById("show").value=ChineseStr; 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 ){//獲取整型部分轉換 zeroCount = 0; IntLen = IntegerNum.length; for( i=0;i<IntLen;i++ ){ n = IntegerNum.substr(i,1); p = IntLen - i - 1; q = p / 4; 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!= '' ){//小數部分 decLen = DecimalNum.length; for( i=0; i<decLen; i++ ){ 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; } alert(ChineseStr); return ChineseStr; }