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 0
textValue = ""
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 "
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 "
End Select
ConvertTeensToString = textValue
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
Dim lowHundreds As Integer
Dim lowTens As Integer
Dim lowOnes As Integer
Dim highHundreds As Integer
Dim highTens As Integer
Dim highOnes 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
lowOnes = CInt(number / 1000000)
Me.txtResults.Text = ConvertOnesToString(lowOnes) & "million"
ElseIf number > 0 Then
Me.txtResults.Text = cents & "/100"
If number >= 1 Then
lowTens = low \ 10 Mod 10
lowOnes = low Mod 10
If lowTens = 1 Then
lowTens = lowTens * 10 + lowOnes
Me.txtResults.Text = ConvertTeensToString(lowTens) & "and " & Me.txtResults.Text
Else
Me.txtResults.Text = ConvertTensToString(lowTens) & ConvertOnesToString(lowOnes) & "and " & Me.txtResults.Text
End If
If number >= 100 Then
lowHundreds = low \ 100
If lowHundreds = 0 Then
Me.txtResults.Text = "" & Me.txtResults.Text
Else
Me.txtResults.Text = ConvertOnesToString(lowHundreds) & "hundred " & Me.txtResults.Text
End If
If number >= 1000 Then
highTens = high \ 10 Mod 10
highOnes = high Mod 10
If highTens = 1 Then
highTens = highTens * 10 + highOnes
Me.txtResults.Text = ConvertTeensToString(highTens) & "thousand " & Me.txtResults.Text
Else
Me.txtResults.Text = ConvertTensToString(highTens) & ConvertOnesToString(highOnes) & "thousand " & Me.txtResults.Text
End If
If number >= 100000 Then
highHundreds = high \ 100
Me.txtResults.Text = ConvertOnesToString(highHundreds) & "hundred " & Me.txtResults.Text
End If
End If
End If
End If
End If
End Sub
End Class