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

程序

最近做项目的合同部分时用到需要能把数字转英文的程序,找过很多网站都没用,只能安下心来自己做,程序作的不太精简,但功能可以实现,也许同僚们会用得着。(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

时间: 2024-10-29 19:20:30

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

文案排版的元素:字形、方向、颜色、数字、英文、纹理、框架

文章描述:敏捷设计之超级淘宝店设计简易排版参照模板. 我发现我上次想的文案形状设计法还是很有效的,至少在我的工作中有起到很好的作用. 这种排版方法的关键在于让文案依照形状的走势来排版,整体效果是可以的,但是文案的排版精细度就不会太够. 为此我决定把这个方法再拓展一下. 在不考虑模特照片的情况下,我们可以把文案排版的元素分为以下七种: 字形.方向.颜色.数字.英文.纹理.框架. 然后我按照设计的难易顺序来排个参照序列. 一.斜向排版&竖向排版&横竖混排 有倾斜的排版视觉效果是非常直接的 斜向

数字转英文(货币)大写

大写|货币 '功能模块:数字转英文(货币)大写'Public Function NumberToString(Number As Double) As String'调用形式:debug.print NumberToString(1234.32)'说明:最大支持12位数字,小数点后精确两位'程序:杨鑫光(Volitation)Dim StrNO(19) As StringDim Unit(8) As StringDim StrTens(9) As String Public Function N

php批量获取首字母(汉字、数字、英文)

php批量获取首字母(汉字.数字.英文) $mysql_server_name='127.0.0.1'; //改成自己的mysql数据库服务器 $mysql_username='用户'; //改成自己的mysql数据库用户名 $mysql_password='密码'; //改成自己的mysql数据库密码 $mysql_database='数据库'; //改成自己的mysql数据库名 mysql_connect('127.0.0.1', $mysql_username,$mysql_passwor

php判断输入是否是纯数字,英文,汉字的方法

 这篇文章主要介绍了php判断输入是否是纯数字,英文,汉字的方法,涉及php中mb_strlen和strlen等函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php判断输入是否是纯数字,英文,汉字的方法.分享给大家供大家参考.具体分析如下: 这里利用php的mb_strlen和strlen函数就可以轻松得知字符串的构成是全英文.英汉混合.还是纯汉字.简要说明如下: 1.如果strlen返回的字符长度和mb_strlen以当前编码计算的长度一 致,可以判断是纯英

利用正则表达式(只录入中文,数字,英文)_正则表达式

只能输入中文:<input id="input1" type="text" onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"> 只能输入全角字符:<input id="input2" type="text" onkeyup="value=value.replac(/[^\u4E00-\u9FA5]/g,'')"&

php判断输入是否是纯数字,英文,汉字的方法_php技巧

本文实例讲述了php判断输入是否是纯数字,英文,汉字的方法.分享给大家供大家参考.具体分析如下: 这里利用php的mb_strlen和strlen函数就可以轻松得知字符串的构成是全英文.英汉混合.还是纯汉字.简要说明如下: 1.如果strlen返回的字符长度和mb_strlen以当前编码计算的长度一 致,可以判断是纯英文字符串. 2.如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致, 且strlen返回值同mb_strlen的返回值求余后得0可以判断为是全汉字的字符串

新手 帮忙 网页-用一个JSP页面编写一个猜数字游戏

问题描述 用一个JSP页面编写一个猜数字游戏 系统内部生成一个0-100之间的随机数,提供一个表单让用户来猜这个数字是多少,若猜大了,出现"大了"的提示,若猜小了,出现"小了"的提示,直到用户猜到正确的数字时,提示"猜对了!",并统计用户猜了几次才猜对. 我的代码: **<%@ page language="java" import="java.util.*" pageEncoding="U

一个计算数字的步数算法

这两天看了下某位大神的github,知道他对算法比较感兴趣,看了其中的一个计算数字的步数算法,感觉这个有点意思,所以就自己实现了一个 算法描述与实现原理 给出一个整型数字,统计出有多少种走法可以到达目标,比如一个数字4,可以有下面几种走法 [ 1, 3 ] [ 4 ] [ 1, 1, 2 ] [ 2, 2 ] [ 1, 1, 1, 1 ] 其实通过上面的组合可以得出下面的结论 先列出所有项是1的组合 依次从左到右项为1的组合 递归上面的集合,找出项里1的索引,然后计算左起2项的值,结果递归此操作

算法 全排列 动态规划-有一个由数字1,2,3,4,5,6,7,8,9组成的数字串(长度不超过200),问如何将M个加号插入这个串中

问题描述 有一个由数字1,2,3,4,5,6,7,8,9组成的数字串(长度不超过200),问如何将M个加号插入这个串中 所得的算术表达式的值最小,加号不能加在数字串的最前面或最末尾,也不应有两个或两个以上的加号相邻 解决方案 什么语言啊?没分给吗? 解决方案二: 什么语言啊?没分给吗? 解决方案三: VB.NET假定你的字符串变量名是TXTDIM TXT1DIM NEWTXT AS STRINGDIM A AS INT32FOR A=1 TO LEN(TXT)IF A=LEN(TXT) THEN