<!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>