# Re: 请问有没有将阿拉伯数字转成英文字的程式？

Posted by 小瓜瓜 on August 16, 1999 at 17:11:54:

In Reply to: Re: 请问有没有将阿拉伯数字转成英文字的程式？ posted by Michael Owen on August 16, 1999 at 16:42:52:

: 不是这样的，而是输入 189.98 会转换成 one hundred and eighty nine and ninety eight ...

: : : 请问有没有将阿拉伯数字转成英文字的程式？thanks

: : Private Sub Text1_KeyDown(KeyAscii As Integer, Shift As Integer)
: : Select Case Chr(KeyAscii)
: : Case "0"
: : KeyAscii = 0
: : Text1.SelText = "Zero"
: : Case "1"
: : KeyAscii = 0
: : Text1.SelText = "One"
: : Case "2"
: : KeyAscii = 0
: : Text1.SelText = "Two"
: : Case "3"
: : KeyAscii = 0
: : Text1.SelText = "Three"
: : Case "4"
: : KeyAscii = 0
: : Text1.SelText = "Four"
: : Case "5"
: : KeyAscii = 0
: : Text1.SelText = "Five"
: : Case "6"
: : KeyAscii = 0
: : Text1.SelText = "Six"
: : Case "7"
: : KeyAscii = 0
: : Text1.SelText = "Seven"
: : Case "8"
: : KeyAscii = 0
: : Text1.SelText = "Eight"
: : Case "9"
: : KeyAscii = 0
: : Text1.SelText = "Nine"
: : End Select
: : End Sub

你这样不就是想吃白吃的午餐吗？
因为很覆杂，我只想用提示的方式回答

一个数分两个部份，也就是整数与小数，把数值先用Str转成字串，用 Instr 找出＂.″的位置，用Left截取整数的部份，用Right截取小数的部份。
为了求程式简短，因此再自己写一个可以传回字串的Function，把整数部份的字串丢给Function，在Function先再开起一占存字串变数，假设叫MyVal，求得整数部份字串的长度后，然后用For..Next及MID，倒着算，由最后一个字到第一个字，将字一个个的剥出来，利用If 及Select，若是字串的最后一个字，

Function Translate(XXX As String) As String

Select Case Mid(XXX,倒数第一个字)
Case "0"
MyStr = MyStr + "Zero"
.
.
.
End Select

Select Case Mid(XXX，倒数第二个字)
Case "0"
MyStr = "" & MyStr
Case "1"
Select Case Mid(XXX,最后一个字)
Case "0"
MyStr = "Ten"
Case "1"
MyStr = "Eleven"
.
.
.
End Select
Case "2"
MyStr = "Twenty " & MyStr
.
.
.
End Select

Select Case Mid(XXX，倒数第三个字)
Case "0"
MyStr = "" & MyStr
Case "1"
MyStr = "One Hundred " & MyStr
Case "2"
MyStr = "Two Handred " & MyStr
.
.
.
End Select

以下，自行推演

Translate = MyStr

End Function

以此类推，小数部份也可以使用这个函数传回

如果有小数.. 整数字串 & "And" & 小数字串

- 小瓜瓜VB调理包

Follow Ups:

- 有一个元件可以满足您的需求... 帅帅阿柳 23:52:01 8/16/99 (0)