英文的大小写转换我需要一个软件可以输入数字转换成英文的举例 122 :ONE HUNDRED AND TWENTY TW

学习 时间:2026-03-30 07:20:32 阅读:8691
英文的大小写转换我需要一个软件可以输入数字转换成英文的举例 122 :ONE HUNDRED AND TWENTY TWO242341:TWO HUNDRED AND FORTY TWO THOUSAND THREE HUNDRED AND FORTY ONE第一个回答我的 那个人 这个在什么程序里运行啊?我在什么软件里编这个程序啊?我不懂啊

最佳回答

乐观的冰淇淋

痴情的未来

2026-03-30 07:20:32

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
' 判断是否小于10
value=zr3(y)
elseif MId(y,2,1)="1" then
' 判断是否在10到20之间
value=zr2(y)
elseif MId(y,3,1)="0" then
' 为去掉尾空格,判断是否为大于20小于100的能被10整除的数
value=zr1(y)
else
value=zr1(y)+" "+zr3(y)
' 加上10位到个位的空格
end if
w2=value
end function
function w3(y)
' 用来制作3位数字转英文
if MId(y,1,1)="0" then
' 判断是否小于100
value=w2(y)
elseif MId(y,2,2)="00" then
' 判断是否能被100整除
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 z0 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 i0 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 z0 then
xs="AND CENTS"+" "+w2("$"+rstr)+" "
' 小数部分存在时转换小数部分
end if
make=lm+" "+xs+"ONLY"
' 最后结果,不要忘记加上ONLY
end function

最新回答共有2条回答

  • 靓丽的过客
    回复
    2026-03-30 07:20:32

    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 functionfunction 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 functionfunction 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 functionfunction 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 functionfunction dw(y)' 准备数据dim z(5)z(0)=""z(1)="THOUSAND"z(2)="MILLION"z(3)="BILLION"dw=z(y)end functionfunction w2(y)' 用来制作2位数字转英文if MId(y,2,1)="0" then' 判断是否小于10value=zr3(y)elseif MId(y,2,1)="1" then' 判断是否在10到20之间value=zr2(y)elseif MId(y,3,1)="0" then' 为去掉尾空格,判断是否为大于20小于100的能被10整除的数value=zr1(y)else value=zr1(y)+" "+zr3(y)' 加上10位到个位的空格 end ifw2=value end functionfunction w3(y)' 用来制作3位数字转英文if MId(y,1,1)="0" then' 判断是否小于100value=w2(y)elseif MId(y,2,2)="00" then' 判断是否能被100整除value=zr4(y)+" "+"HUNDRED"elsevalue=zr4(y)+" "+"HUNDRED"+" "+"AND"+" "+w2(y)' 不能整除的要后面加"AND"end ifw3=valueend functionfunction make(x)z=instr(1,x,"。",1)' 取小数点位置if z0 then' 判断有无小数lstr=mid(x,1,z-1)' 取小数点左边字串rstr=mid(x,z+1,2)' 取小数点右边字串else lstr=x' 如果没有小数end iflstrev=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 i0 thenlm=w3(a(i))+" "+dw(i)+" "+lm' 用来加上"THOUSAND OR MILLION OR BILLION"elselm=w3(a(i))' 防止i=0时"lm=w3(a(i))+" "+dw(i)+" "+lm"多加两个尾空格end ifelselm=w3(a(i))+lmend ifNEXTxs=""' 用来存放转换后的小数部分if z0 then xs="AND CENTS"+" "+w2("$"+rstr)+" "' 小数部分存在时转换小数部分 end ifmake=lm+" "+xs+"ONLY"' 最后结果,不要忘记加上ONLYend function

上一篇 what is that?和who is that 的区别

下一篇 给80大寿的爷爷的祝寿词怎么说啊?