快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

最近做项目的合同部分时用到需要能把数字转英文的程序,找过很多网站都没用,只能安下心来自己做,程序作的不太精简,但功能可以实现,也许同僚们会用得着。(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
else
lm=w3(a(i))+lm
end if
NEXT
xs=""\\\'用来存放转变后的小数部分
if z<>0 then
xs="AND CENTS"+" "+w2("$"+rstr)+" "\\\'小数部分存在时转变小数部分
end if
make=lm+" "+xs+"ONLY"\\\'最后结果,加上ONLY
end function
返回类别: 教程
上一教程: 如何使用ASP制作类似安装向导的页面
下一教程: ASP技巧集锦(官方权威版)-4

您可以阅读与"一个把数字转英文的实用程序"相关的教程:
· 展现C#(3):第一个C#应用程序
· 一个用C#写的扫描ASP源码漏洞的应用程序(续)
· 一个用C#写的扫描ASP源码漏洞的应用程序
· 一个把WORD转变成HTML的程序
· 初学ASP编程易犯的一个致命程序问题及解决办法
    微笑服务 优质保证 索取样品