home *** CD-ROM | disk | FTP | other *** search
- Public Class Form1
-
- 'Main Function
- Function SpellNumber(ByVal MyNumber)
- Dim Dollars, Cents, Temp
- Dim DecimalPlace, Count
- Dim Place(9) As String
- Place(2) = " Thousand "
- Place(3) = " Million "
- Place(4) = " Billion "
- Place(5) = " Trillion "
- ' String representation of amount.
- MyNumber = Trim(Str(MyNumber))
- ' Position of decimal place 0 if none.
- DecimalPlace = InStr(MyNumber, ".")
- ' Convert cents and set MyNumber to dollar amount.
- If DecimalPlace > 0 Then
- Cents = GetTens(Strings.Left(Strings.Mid(MyNumber, DecimalPlace + 1) & "00", 2))
- MyNumber = Trim(Strings.Left(MyNumber, DecimalPlace - 1))
- End If
- Count = 1
- Do While MyNumber <> ""
- Temp = GetHundreds(Strings.Right(MyNumber, 3))
- If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
- If Len(MyNumber) > 3 Then
- MyNumber = Strings.Left(MyNumber, Strings.Len(MyNumber) - 3)
- Else
- MyNumber = ""
- End If
- Count = Count + 1
- Loop
- Select Case Dollars
- Case ""
- Dollars = "No Dollars"
- Case "One"
- Dollars = "One Dollar"
- Case Else
- Dollars = Dollars & " Dollars"
- End Select
- Select Case Cents
- Case ""
- Cents = " and No Cents"
- Case "One"
- Cents = " and One Cent"
- Case Else
- Cents = " and " & Cents & " Cents"
- End Select
- SpellNumber = Dollars & Cents
- End Function
-
- ' Converts a number from 100-999 into text
- Function GetHundreds(ByVal MyNumber)
- Dim Result As String
- If Val(MyNumber) = 0 Then Exit Function
- MyNumber = Strings.Right("000" & MyNumber, 3)
- ' Convert the hundreds place.
- If Mid(MyNumber, 1, 1) <> "0" Then
- Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
- End If
- ' Convert the tens and ones place.
- If Mid(MyNumber, 2, 1) <> "0" Then
- Result = Result & GetTens(Mid(MyNumber, 2))
- Else
- Result = Result & GetDigit(Mid(MyNumber, 3))
- End If
- GetHundreds = Result
- End Function
-
- ' Converts a number from 10 to 99 into text.
- Function GetTens(ByVal TensText)
- Dim Result As String
- Result = "" ' Null out the temporary function value.
- If Val(Strings.Left(TensText, 1)) = 1 Then ' If value between 10-19...
- Select Case Val(TensText)
- Case 10 : Result = "Ten"
- Case 11 : Result = "Eleven"
- Case 12 : Result = "Twelve"
- Case 13 : Result = "Thirteen"
- Case 14 : Result = "Fourteen"
- Case 15 : Result = "Fifteen"
- Case 16 : Result = "Sixteen"
- Case 17 : Result = "Seventeen"
- Case 18 : Result = "Eighteen"
- Case 19 : Result = "Nineteen"
- Case Else
- End Select
- Else ' If value between 20-99...
- Select Case Val(Strings.Left(TensText, 1))
- Case 2 : Result = "Twenty "
- Case 3 : Result = "Thirty "
- Case 4 : Result = "Forty "
- Case 5 : Result = "Fifty "
- Case 6 : Result = "Sixty "
- Case 7 : Result = "Seventy "
- Case 8 : Result = "Eighty "
- Case 9 : Result = "Ninety "
- Case Else
- End Select
- Result = Result & GetDigit(Strings.Right(TensText, 1))
- End If
- GetTens = Result
- End Function
-
- ' Converts a number from 1 to 9 into text.
- Function GetDigit(ByVal Digit)
- Select Case Val(Digit)
- Case 1 : GetDigit = "One"
- Case 2 : GetDigit = "Two"
- Case 3 : GetDigit = "Three"
- Case 4 : GetDigit = "Four"
- Case 5 : GetDigit = "Five"
- Case 6 : GetDigit = "Six"
- Case 7 : GetDigit = "Seven"
- Case 8 : GetDigit = "Eight"
- Case 9 : GetDigit = "Nine"
- Case Else : GetDigit = ""
- End Select
- End Function
-
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim numbToConvert As String
- numbToConvert = Val(TextBox1.Text)
- MsgBox(SpellNumber(numbToConvert))
- End Sub
-
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- End
- End Sub
- End Class
-