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

ASP
asp分页(自己整理的2个分页程序)
ASP常用的系统配置函数
雨哲防采集策略之列表篇
雨哲浅谈关于防采集而不影响收录内容篇
asp数据库连接函数
ajax XMLHTTP Post Form时的表单乱码综合解决
ASP注入详细命令40条
用ASP实现MSSQL用户密码破解
ASP创建对象的两种方法比较
ASP字符串转换为整形、双精度型、布尔
ASP计算str2在str1中出现的次数
asp采集抓取网上房产信息的代码
ASP注册登陆实例代码
ASP中使用FileSystemObject时提高性能的方法
分享一个好东东,动态Include文件 (Dynamic File Includes)
解决 JScript 中使用日期类型数据时出现类型错误的问题
在ASP里面创建GUID
在JScript中使用缓存技术的实际代码
ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
海阳2006+功能中的潜水王

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 220 ::
收藏到网摘: 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