天天看點

JS中數字金額裝換成漢字金額方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title></title>

<script>

//自動轉換數字金額為大小寫中文字元,傳回大小寫中文字元串,最大處理到999兆

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);

//alert(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;

}

return ChineseStr;

}

</script>

</script>

</head>

<body>

<input name="" type="text"  οnblur="alert(changeMoneyToChinese(this.value))"/>

</body>

</html>

繼續閱讀