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 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