javascript: function ChangeToBig(value) { var intFen,i; var strArr,strCheck,strFen,strDW,strNum,strBig,strNow; if(trim(value)=="") //数据为空时返回"零" return "零"; if (isNaN(value)) //数据非法时提示,并返回空串 { strErr = "数据"+value+"非法!" alert(strErr); 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 ""; //若失败则返回原值 } } < html > < head > < meta http-equiv ="Content-Type" content ="text/html; charset=gb2312" > < meta name ="GENERATOR" content ="Microsoft FrontPage 4.0" > < meta name ="ProgId" content ="FrontPage.Editor.Document" > < title > 转换大写金额 </ title > < STYLE type =text/css > INPUT {}{ BORDER-RIGHT: #c0d3dc 1px solid; BORDER-TOP: #c0d3dc 1px solid; BORDER-LEFT: #c0d3dc 1px solid; BORDER-BOTTOM: #c0d3dc 1px solid; font-family: verdana; HEIGHT: 19px} BODY {}{font-family:arial,helvetica,Tahoma; font-size: 9pt; color:'094A82'} </ STYLE > < bgsound id =bgsoundone src ="" loop =1 > </ head > < body > < SCRIPT LANGUAGE ="VBScript" > dim hj,hji sub document_onkeypress() if window.event.srcelement.id="num" and window.event.keycode="13" then call retu_cn() end if end sub sub window_onload() document.fmSubmit.t1.focus() end sub SUB retu_cn() dim n,m_hj,s,ch,ch2,ch3,num num=Replace(trim(document.fmSubmit.t1.value),",","",1,-1,1) if num="" then MsgBox "您还没有输入金额!" document.fmSubmit.t1.focus() exit sub End If if IsNumeric(num)=False then MsgBox "您输入的不是金额!" document.fmSubmit.t1.focus() exit sub End If n=FormatNumber(num,2,-1) num=n n=Replace(n,",","",1,-1,1) If len(n)>15 Then MsgBox "金额必须小于千亿!" document.fmSubmit.t1.focus() exit sub End If hj=space(0) s="840" ch="壹贰叁肆伍陆柒捌玖" ch2="仟佰拾 " ch3="亿万元" for x=1 to 3 m=cstr(int(n/10^FormatNumber(mid(s,x,1),0,-1))) m=space(4-len(m))+m m_hj=space(0) if m<>" 0" then for y=1 to 4 if mid(m,y,1)<>space(1) and mid(m,y,1)<>"0" then m_hj=trim(m_hj+mid(ch,FormatNumber(mid(m,y,1),0,-1),1)+mid(ch2,y,1)) else if mid(m,y,1)=space(1) or mid(m,y,1)="0" then m_hj=m_hj if right(m_hj,1)="零" then m_hj=m_hj+space(0) else m_hj=m_hj+"零" end if else m_hj=m_hj end if end if next if right(m_hj,1)="零" then m_hj=mid(m_hj,1,len(m_hj)-1)+mid(ch3,x,1) if x=3 then m_hj=m_hj+space(0) else m_hj=m_hj+"零" end if else m_hj=m_hj+mid(ch3,x,1) end if if right(hj,1)="零" and mid(m_hj,1,1)="零" then hj=hj+mid(m_hj,2,len(m_hj)-1) else hj=hj+m_hj end if else if x=3 then if right(hj,1)="零" then if trim(hj)="零" then hj=hj+space(0) else hj=mid(hj,1,len(hj)-1)+"元" end if else if trim(hj)="零" then hj=hj+space(0) else hj=hj+"元" end if end if else if right(hj,1)="零" then hj=hj+space(0) else hj=hj+"零" end if end if end if if n-int(n)=0 then n=n-int(FormatNumber(m,0,-1))*10^int(FormatNumber(mid(s,x,1),0,-1)) else tt=FormatNumber("0."+mid(cstr(n),Instr(1,n,".")+1,2),2) n=int(n) n=n-int(FormatNumber(m,0,-1))*10^int(FormatNumber(mid(s,x,1),0,-1)) n=n+tt end if next m=mid(cstr(n),2,2) if trim(len(m))<>2 then m=m+"0" end if if n*100=0 then if left(hj,1)="零" then if right(hj,1)="零" then hj=hj+"元整" else hj=mid(hj,2,len(hj)-1)+"整" end if else if right(hj,1)="零" then hj=mid(hj,1,len(hj)-1)+"整" else hj=hj+"整" end if end if else if right(hj,1)="零" then hj=mid(hj,1,len(hj)-1) else hj=hj end if if mid(m,1,1)="0" or mid(m,1,1)=space(1) then hj=hj+"零" else hj=hj+mid(ch,FormatNumber(mid(m,1,1),0,-1),1)+"角" end if if mid(hj,1,1)="零" then hj=mid(hj,2,len(hj)-1) else hj=hj end if if mid(m,2,1)="0" then hj=hj+"整" else hj=hj+mid(ch,FormatNumber(mid(m,2,1),0,-1),1)+"分" end if end if if num=".00" then document.fmSubmit.t1.value="0.00" else document.fmSubmit.t1.value=num end if document.fmSubmit.t2.value="" hji=1 call read() End Sub SUB read() MyVar=mid(hj,hji,1) document.fmSubmit.t2.value=document.fmSubmit.t2.value+MyVar Select Case MyVar Case "零" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/0.wav" Case "壹" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/1.wav" Case "贰" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/2.wav" Case "叁" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/3.wav" Case "肆" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/4.wav" Case "伍" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/5.wav" Case "陆" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/6.wav" Case "柒" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/7.wav" Case "捌" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/8.wav" Case "玖" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/9.wav" Case "拾" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/10.wav" Case "佰" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/b.wav" Case "仟" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/q.wav" Case "万" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/w.wav" Case "亿" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/y.wav" Case "元" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/yuan.wav" Case "分" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/fen.wav" Case "角" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/jiao.wav" Case "整" document.all("bgsoundone").src="http://go.163.com/yjsj/wav/z.wav" Case else hji=0 document.all("bgsoundone").src="" exit sub End Select hji=hji+1 setTimeout "read",400 End Sub </ script > 最完整、最标准的大写金额转换程序,特别是“零”和“整”的转换,最大金额可到仟亿。 < br > 并加入了朗读功能,所以说是最完美的大写金额转换程序! < br > < form id =fmSubmit name =fmSubmit method ="POST" > < p > 请输入金额: < input type ="text" name ="T1" size ="20" id ="num" > < input type ="button" onclick =retu_cn() value ="转换大写金额" name ="B1" ></ p > < br > 大写金额: < input type ="text" name ="T2" size ="55" readonly > </ form > </ body > </ html >