当前位置: 首页 > 图文教程 > 网络编程 > ASP > 一个把数字转英文的实用程序

ASP
ASP基础讲座(下)
解决IIS5 HTTP500内部错误
ASP 3.0高级编程(四十六)
ASP 3.0高级编程(四十五)
ASP 3.0高级编程(四十四)
ASP 3.0高级编程(四十三)
ASP 3.0高级编程(四十二)
ASP 3.0高级编程(四十一)
ASP 3.0高级编程(三十九)
ASP 3.0高级编程(三十八)
ASP 3.0高级编程(三十七)
ASP 3.0高级编程(三十六)
ASP 3.0高级编程(三十五)
ASP 3.0高级编程(三十四)
ASP 3.0高级编程(三十三)
ASP 3.0高级编程(三十二)
ASP 3.0高级编程(三十一)
ASP错误代码说明
jscript错误代码及相应解释大全
ASP错误处理

ASP 中的 一个把数字转英文的实用程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 65 ::
收藏到网摘: n/a

  最近做项目的合同部分时用到需要能把数字转英文的程序,找过很多网站都没用,只能安下心来自己做,程序作的不太精简,但功能可以实现,也许同僚们会用得着。(vbscript)
function zr4(y)'准备数据
dim z(10)
z(1)="ONE"
z(2)="TWO"
z(3)="THREE"
z(4)="FOUR"
z(5)="FIVE"
z(6)="SIX"
z(7)="SEVEN"
z(8)="EIGHT"
z(9)="NINE"
zr4=z(MID(y,1,1))
end function

function zr3(y)'准备数据
dim z(10)
z(1)="ONE"
z(2)="TWO"
z(3)="THREE"
z(4)="FOUR"
z(5)="FIVE"
z(6)="SIX"
z(7)="SEVEN"
z(8)="EIGHT"
z(9)="NINE"
zr3=z(MID(y,3,1))
end function


function zr2(y)'准备数据

dim z(20)
z(10)="TEN"
z(11)="ELEVEN"
z(12)="TWELVE"
z(13)="THIRTEEN"
z(14)="FOURTEEN"
z(15)="FIFTEEN"
z(16)="SIXTEEN"
z(17)="SEVENTEEN"
z(18)="EIGHTEEN"
z(19)="NINETEEN"
zr2=z(MID(y,2,2))

end function

function zr1(y)'准备数据

dim z(10)
z(1)="TEN"
z(2)="TWENTY"
z(3)="THIRTY"
z(4)="FORTY"
z(5)="FIFTY"
z(6)="SIXTY"
z(7)="SEVENTY"
z(8)="EIGHTY"
z(9)="NINETY"
zr1=z(MID(y,2,1))

end function


function dw(y)'准备数据

dim z(5)
z(0)=""
z(1)="THOUSAND"
z(2)="MILLION"
z(3)="BILLION"
dw=z(y)

end function

function w2(y)'用来制作2位数字转英文
    
if MID(y,2,1)="0" then'判断是否小于十
    value=zr3(y)
elseif MID(y,2,1)="1" then'判断是否在十到二十之间
    value=zr2(y)
elseif MID(y,3,1)="0" then'判断是否为大于二十小于一百的能被十整除的数(为了去掉尾空格)
    value=zr1(y)
else    
    value=zr1(y)+" "+zr3(y)'加上十位到个位的空格    
end if
w2=value    
end function

function w3(y)'用来制作3位数字转英文
if MID(y,1,1)="0" then'判断是否小于一百
    value=w2(y)
elseif MID(y,2,2)="00"  then'判断是否能被一百整除
    value=zr4(y)+" "+"HUNDRED"
else
    value=zr4(y)+" "+"HUNDRED"+" "+"AND"+" "+w2(y)'不能整除的要后面加“AND”
end if
w3=value
end function

function make(x)
z=instr(1,x,".",1)'取小数点位置
if z<>0 then'判断有没有小数
lstr=mid(x,1,z-1)'取小数点左边的字串
rstr=mid(x,z+1,2)'取小数点右边的字串
else
lstr=x'没有小数的情况
end if
lstrev=StrReverse(lstr)'对左边的字串取反字串
dim a(5)'定义5个字串变量用来存放解析出的三位一组的字串
select case len(lstrev) mod 3'字串长度不能被整除,需补齐
    case "1"
        lstrev=lstrev+"00"
    case "2"    
        lstrev=lstrev+"0"
end select
lm=""'用来存放转换后的整数部分
for i=0 to len(lstrev)/3-1'计算有多少个三位
    a(i)=StrReverse(mid(lstrev,3*i+1,3))'截取第1个三位
    if a(i)<>"000"  then'用来避免这种情况“1000000=ONE MILLION THOUSAND ONLY”
    if i<>0 then
    lm=w3(a(i))+" "+dw(i)+" "+lm'用来加上“THOUSAND OR MILLION OR BILLION”
    else
    lm=w3(a(i))'防止i=0时“lm=w3(a(i))+" "+dw(i)+" "+lm”多加两个尾空格
    end if
&nb