<
script
type
=
"text/javascript"
>
/**
*人民币金额大小写转化
*/
function
ChangeToBig(value){
var
intFen,i;
var
strArr,strCheck,strFen,strDW,strNum,strBig,strNow;
if
(value ==
null
){
//数据非法时提示,并返回空串
strErr =
"数据"
+value+
"非法!"
alert(strErr);
return
""
;
}
if
(value==0){
return
"零"
;
}
strCheck = value+
"."
;
strArr = strCheck.split(
"."
);
strCheck = strArr[0];
if
(strCheck.length>12){
//数据大于等于一万亿时提示无法处理
strErr =
"数据"
+value+
"过大,无法处理!"
alert(strErr);
return
""
;
}
try
{
i = 0;
strBig =
""
;
intFen = value*100;
//转换为以分为单位的数值
strFen = intFen.toString();
strArr = strFen.split(
"."
);
strFen = strArr[0];
intFen = strFen.length;
//获取长度
strArr = strFen.split(
""
);
//将各个数值分解到数组内
while
(intFen!=0) {
//分解并转换
i = i+1;
switch
(i) {
//选择单位
case
1:strDW =
"分"
;
break
;
case
2:strDW =
"角"
;
break
;
case
3:strDW =
"元"
;
break
;
case
4:strDW =
"拾"
;
break
;
case
5:strDW =
"佰"
;
break
;
case
6:strDW =
"仟"
;
break
;
case
7:strDW =
"万"
;
break
;
case
8:strDW =
"拾"
;
break
;
case
9:strDW =
"佰"
;
break
;
case
10:strDW =
"仟"
;
break
;
case
11:strDW =
"亿"
;
break
;
case
12:strDW =
"拾"
;
break
;
case
13:strDW =
"佰"
;
break
;
case
14:strDW =
"仟"
;
break
;
}
switch
(strArr[intFen-1]){
//选择数字
case
"1"
:strNum =
"壹"
;
break
;
case
"2"
:strNum =
"贰"
;
break
;
case
"3"
:strNum =
"叁"
;
break
;
case
"4"
:strNum =
"肆"
;
break
;
case
"5"
:strNum =
"伍"
;
break
;
case
"6"
:strNum =
"陆"
;
break
;
case
"7"
:strNum =
"柒"
;
break
;
case
"8"
:strNum =
"捌"
;
break
;
case
"9"
:strNum =
"玖"
;
break
;
case
"0"
:strNum =
"零"
;
break
;
}
//处理特殊情况
strNow = strBig.split(
""
);
//分为零时的情况
if
((i==1)&&(strArr[intFen-1]==
"0"
)) strBig =
"整"
;
//角为零时的情况
else if
((i==2)&&(strArr[intFen-1]==
"0"
)){
//角分同时为零时的情况
if
(strBig!=
"整"
)
strBig =
"零"
+strBig;
}
//元为零的情况
else if
((i==3)&&(strArr[intFen-1]==
"0"
))
strBig =
"元"
+strBig;
//拾-仟中一位为零且其前一位(元以上)不为零的情况时补零
else if
((i<7)&&(i>3)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]!=
"零"
)&&(strNow[0]!=
"元"
))
strBig =
"零"
+strBig;
//拾-仟中一位为零且其前一位(元以上)也为零的情况时跨??
else if
((i<7)&&(i>3)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]==
"零"
)){}
//拾-仟中一位为零且其前一位是元且为零的情况时跨过
else if
((i<7)&&(i>3)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]==
"元"
)){}
//当万为零时必须补上万字
else if
((i==7)&&(strArr[intFen-1]==
"0"
))
strBig =
"万"
+strBig;
//拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零
else if
((i<11)&&(i>7)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]!=
"零"
)&&(strNow[0]!=
"万"
))
strBig =
"零"
+strBig;
else if
((i<11)&&(i>7)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]==
"万"
)){}
//拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过
else if
((i<11)&&(i>7)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]==
"零"
)){}
//万位为零且存在仟位和十万以上时,在万仟间补零
else if
((i<11)&&(i>8)&&(strArr[intFen-1]!=
"0"
)&&(strNow[0]==
"万"
)&&(strNow[2]==
"仟"
))
strBig = strNum+strDW+
"万零"
+strBig.substring(1,strBig.length);
//单独处理亿位
else if
(i==11) {
//亿位为零且万全为零存在仟位时,去掉万补为零
if
((strArr[intFen-1]==
"0"
)&&(strNow[0]==
"万"
)&&(strNow[2]==
"仟"
))
strBig =
"亿"
+
"零"
+strBig.substring(1,strBig.length);
//亿位为零且万全为零不存在仟位时,去掉万
else if
((strArr[intFen-1]==
"0"
)&&(strNow[0]==
"万"
)&&(strNow[2]!=
"仟"
))
strBig =
"亿"
+strBig.substring(1,strBig.length);
//亿位不为零且万全为零存在仟位时,去掉万补为零
else if
((strNow[0]==
"万"
)&&(strNow[2]==
"仟"
))
strBig = strNum+strDW+
"零"
+strBig.substring(1,strBig.length);
//亿位不为零且万全为零不存在仟位时,去掉万
else if
((strNow[0]==
"万"
)&&(strNow[2]!=
"仟"
))
strBig = strNum+strDW+strBig.substring(1,strBig.length);
//其他正常情况
else
strBig = strNum+strDW+strBig;
}
//拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零
else if
((i<15)&&(i>11)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]!=
"零"
)&&(strNow[0]!=
"亿"
))
strBig =
"零"
+strBig;
//拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过
else if
((i<15)&&(i>11)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]==
"亿"
)){}
//拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过
else if
((i<15)&&(i>11)&&(strArr[intFen-1]==
"0"
)&&(strNow[0]==
"零"
)){}
//亿位为零且不存在仟万位和十亿以上时去掉上次写入的??
else if
((i<15)&&(i>11)&&(strArr[intFen-1]!=
"0"
)&&(strNow[0]==
"零"
)&&(strNow[1]==
"亿"
)&&(strNow[3]!=
"仟"
))
strBig = strNum+strDW+strBig.substring(1,strBig.length);
//亿位为零且存在仟万位和十亿以上时,在亿仟万间补零
else if
((i<15)&&(i>11)&&(strArr[intFen-1]!=
"0"
)&&(strNow[0]==
"零"
)&&(strNow[1]==
"亿"
)&&(strNow[3]==
"仟"
))
strBig = strNum+strDW+
"亿零"
+strBig.substring(2,strBig.length);
else
strBig = strNum+strDW+strBig;
strFen = strFen.substring(0,intFen-1);
intFen = strFen.length;
strArr = strFen.split(
""
);
}
return
strBig;
}
catch
(err){
return
""
;
//若失败则返回原值
}
}
<
script
type
=
"text/javascript"
>
<
script
type
=
"text/javascript"
>
document.write(ChangeToBig(
<%=
(bean.getFee()
%>
));
</
script
>