Option Strict On
Public Class Form2
Private Sub btnExit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnCalculate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
If IsNumeric(Me.txtNumber.Text) AndAlso CDbl(Me.txtNumber.Text) <= 1000000 Then
Convert()
Else
Me.txtResults.Text = "The text you entered is either not a number or the number was too large!"
End If
End Sub
Private Function ConvertOnesToString(ByVal inputNumber As Integer) As String
Dim textValue As String = "empty"
Select Case inputNumber
Case 1 : textValue = "one "
Case 2 : textValue = "two "
Case 3 : textValue = "three "
Case 4 : textValue = "four "
Case 5 : textValue = "five "
Case 6 : textValue = "six "
Case 7 : textValue = "seven "
Case 8 : textValue = "eight "
Case 9 : textValue = "nine "
Case Else : textValue = ""
End Select
ConvertOnesToString = textValue
End Function
Private Function ConvertTensToString(ByVal inputNumber As Integer) As String
Dim textValue As String = "empty"
Select Case inputNumber
Case 2 : textValue = "twenty "
Case 3 : textValue = "thirty "
Case 4 : textValue = "fourty "
Case 5 : textValue = "fifty "
Case 6 : textValue = "sixty "
Case 7 : textValue = "seventy "
Case 8 : textValue = "eighty "
Case 9 : textValue = "ninety "
Case Else : textValue = ""
End Select
ConvertTensToString = textValue
End Function
Private Function ConvertTeensToString(ByVal inputNumber As Integer) As String
Dim textValue As String = "empty"
Select Case inputNumber
Case 10 : textValue = "ten "
Case 11 : textValue = "eleven "
Case 12 : textValue = "twelve "
Case 13 : textValue = "thirteen "
Case 14 : textValue = "fourteen "
Case 15 : textValue = "fifteen "
Case 16 : textValue = "sixteen "
Case 17 : textValue = "seventeen "
Case 18 : textValue = "eighteen "
Case 19 : textValue = "nineteen "
Case Else
End Select
ConvertTeensToString = textValue
End Function
Private Function BreakDown(ByVal inputNumber As Integer) As String
Dim result As String = ""
If inputNumber >= 1 Then
If (inputNumber \ 10 Mod 10) = 1 Then
result = ConvertTeensToString(10 + (inputNumber Mod 10))
ElseIf (inputNumber \ 10 Mod 10) > 1 Then
result = ConvertTensToString(inputNumber \ 10 Mod 10) & ConvertOnesToString(inputNumber Mod 10)
Else
result = ConvertOnesToString(inputNumber Mod 10)
End If
If inputNumber >= 100 Then
result = ConvertOnesToString((inputNumber \ 100)) & "hundred " & result
End If
End If
BreakDown = result
End Function
Private Sub Convert()
Dim number As Double = CDbl(Me.txtNumber.Text)
Dim cents As Integer
Dim high As Integer
Dim low As Integer
cents = CInt(number * 100 Mod 100)
low = CInt(number - (cents * (1 / 100))) Mod 1000
high = CInt(number - (cents * (1 / 100))) \ 1000
If number = 1000000 Then
low = CInt(number / 1000000)
Me.txtResults.Text = ConvertOnesToString(low) & "million and " & cents & "/100"
ElseIf number > 0 Then
Me.txtResults.Text = BreakDown(low) & "and " & cents & "/100"
If number >= 1000 Then
Me.txtResults.Text = BreakDown(high) & "thousand " & Me.txtResults.Text
End If
End If
End Sub
End Class