hi,
Something that looks like this?
Public Class Converter
Dim _mintnum As Integer
Public Sub New(ByVal num As Integer)
_mintnum = num
End Sub
Public Sub New()
_mintnum = 0
End Sub
Public Shared Function Conversion(ByVal num As Integer) As String
Dim res As String
Dim part1 As String
Dim part2 As String
Dim part3 As String
Dim numLength As Integer
numLength = num.ToString.Length
If numLength < 4 Then
res = Reading3Digitnumber(num)
End If
If numLength > 3 And numLength < 7 Then
part2 = Reading3Digitnumber(CType(num.ToString.Substring(num.ToString.Length - 3, 3).ToString, Integer))
part1 = Reading3Digitnumber(CType(num.ToString.Substring(0, num.ToString.Length - 3).ToString, Integer))
If part1.Trim = "one" Then
res = "thousand"
Else
res = part1 & " thousand"
End If
If part2.Trim <> "zero" Then
res = res & " " & part2
End If
End If
If numLength > 6 And numLength < 10 Then
part3 = Reading3Digitnumber(CType(num.ToString.Substring(num.ToString.Length - 3, 3).ToString, Integer))
part2 = Reading3Digitnumber(CType(num.ToString.Substring(num.ToString.Length - 6, 3).ToString, Integer))
part1 = Reading3Digitnumber(CType(num.ToString.Substring(0, num.ToString.Length - 6).ToString, Integer))
If (part2.Trim = "zero") Then
res = part1 & " million"
ElseIf (part2.Trim = "one") Then
res = part1 & " million" & " thousand"
Else
res = part1 & " million " & part2 & " thousand"
End If
If (part3.Trim <> "zero") Then
res = res & " " & part3
End If
End If
Return res
End Function
Private Shared Function Reading1Digitnumber(ByVal nb As Integer) As String
Dim deZeroA9() As String = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}
Dim res As String = ""
Dim i As Integer
For i = 0 To 9
If (CType(nb.ToString, Integer) = i) Then
res = deZeroA9(i)
Exit For
End If
Next
Return res
End Function
Private Shared Function Reading2Digitnumber(ByVal nb As Integer) As String
Dim from1To9() As String = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}
Dim from11To19() As String =
{"eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}
Dim from10To90() As String =
{"ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty",
"ninety"}
Dim thenumbers() As Char
thenumbers = nb.ToString.ToCharArray
Dim res As String = ""
Dim i As Integer
If thenumbers(0) = "1" Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(0)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from11To19(i)
Exit For
End If
Next
End If
End If
If (thenumbers(0) = "2") _
Or (thenumbers(0) = "3") _
Or (thenumbers(0) = "4") _
Or (thenumbers(0) = "5") _
Or (thenumbers(0) = "6") _
Or (thenumbers(0) = "8") Then
If (thenumbers(0) = "2") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(1)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(1)
res = res & " and " & from1To9(i)
Exit For
End If
Next
End If
End If
If (thenumbers(0) = "3") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(2)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(2)
res = res & " and " & from1To9(i)
Exit For
End If
Next
End If
End If
If (thenumbers(0) = "4") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(3)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(3)
res = res & " and " & from1To9(i)
Exit For
End If
Next
End If
End If
If (thenumbers(0) = "5") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(4)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(4)
res = res & " and " & from1To9(i)
Exit For
End If
Next
End If
End If
If (thenumbers(0) = "6") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(5)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(5)
res = res & " and " & from1To9(i)
Exit For
End If
Next
End If
End If
If (thenumbers(0) = "8") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(7)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(7)
res = res & " and " & from1To9(i)
Exit For
End If
Next
End If
End If
End If
If (thenumbers(0) = "7") Or (thenumbers(0) = "9") Then
If (thenumbers(0) = "7") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(6)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(5)
res = res & " and " & from11To19(i)
Exit For
End If
Next
End If
End If
If (thenumbers(0) = "9") Then
If (CType(thenumbers(1).ToString, Integer) = 0) Then
res = from10To90(8)
Else
For i = 0 To 8
If (CType(thenumbers(1).ToString, Integer) = i + 1) Then
res = from10To90(7)
res = res & " and " & from11To19(i)
Exit For
End If
Next
End If
End If
End If
Return res
End Function
Private Shared Function Reading3Digitnumber(ByVal nb As Integer) As String
Dim from2To9() As String = {"two", "three", "four", "five", "six", "seven", "eight", "nine"}
Const strCent As String = "hundred"
Dim thenumbers() As Char
Dim res As String = ""
Dim i As Integer
thenumbers = nb.ToString.ToCharArray
Select Case nb.ToString.Length
Case 1
res = Reading1Digitnumber(nb)
Case 2
res = Reading2Digitnumber(nb)
Case 3
If thenumbers(0) = "1" Then
res = strCent
Else
For i = 0 To 7
If CType(thenumbers(0).ToString, Integer) = i + 2 Then
res = from2To9(i) & " " & strCent
End If
Next
End If
If thenumbers(1) = "0" Then
Dim intermediatepart As String
intermediatepart = Reading1Digitnumber(CType(nb.ToString.Substring(2), Integer))
If intermediatepart <> "zero" Then
res = res & " " & intermediatepart
End If
Else
res = res & " " & Reading2Digitnumber(CType(nb.ToString.Substring(1), Integer))
End If
Case Else
End Select
Return res
End Function
End Class
Add 2 TextBox in your Form.
and then : TextBoxResult.Text = Converter.Conversion(CType(TextBoxNumber.Text.Trim, Integer))
PS: You may have to adapt because initially it was in French!
Bye.
Pascal