Hi... does someone know how to CONVERT NUMBERS INTO WORDS IN VISUAL BASIC 2008 until millions by using recursion???
if yes... can you please share to me the code???
thanks a lot!!!
Hi... does someone know how to CONVERT NUMBERS INTO WORDS IN VISUAL BASIC 2008 until millions by using recursion???
if yes... can you please share to me the code???
thanks a lot!!!
how could i make a program that will convert the numeric number into words?
i want the whole sample code..please..
thank you
waynespangler has provided you with two links that show how the conversion works. What more do you need?
@ NetJunkie what i want is the whole code for this program and what properties i used to be and how to show the output,thank you.
We don't give ready made programs here, we help people develop their own.
Despite this the links provided by waynespangler contain the sample code.
Try this code for converting number into words
Public Function NumberToString(ByVal num_str As String) As String ', Optional ByVal use_us_group_names As Boolean = True
' Get the appropiate group names.
Dim groups() As String
'If use_us_group_names Then
' groups = New String() {"", "thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion", "septillion", "octillion", "nonillion", "decillion", "undecillion", "duodecillion", "tredecillion", "quattuordecillion", "quindecillion", "sexdecillion", "septendecillion", "octodecillion", "novemdecillion", "vigintillion"}
'Else
groups = New String() {"", "thousand", "million", "milliard", "billion", "1000 billion", "trillion", "1000 trillion", "quadrillion", "1000 quadrillion", "quintillion", "1000 quintillion", "sextillion", "1000 sextillion", "septillion", "1000 septillion", "octillion", "1000 octillion", "nonillion", "1000 nonillion", "decillion", "1000 decillion"}
'End If
' Clean the string a bit.
' Remove "$", ",", leading zeros, and
' anything after a decimal point.
Const CURRENCY As String = "$"
Const SEPARATOR As String = ","
Const DECIMAL_POINT As String = "."
num_str = num_str.Replace(CURRENCY, "").Replace(SEPARATOR, "")
num_str = num_str.TrimStart(New Char() {"0"c})
Dim pos As Integer = num_str.IndexOf(DECIMAL_POINT)
If pos = 0 Then
Return "zero"
ElseIf pos > 0 Then
num_str = num_str.Substring(0, pos - 1)
End If
' See how many groups there will be.
Dim num_groups As Integer = (num_str.Length + 2) \ 3
' Pad so length is a multiple of 3.
num_str = num_str.PadLeft(num_groups * 3, " "c)
' Process the groups, largest first.
Dim result As String = ""
Dim group_num As Integer
For group_num = num_groups - 1 To 0 Step -1
' Get the next three digits.
Dim group_str As String = num_str.Substring(0, 3)
num_str = num_str.Substring(3)
Dim group_value As Integer = CInt(group_str)
' Convert the group into words.
If group_value > 0 Then
If group_num >= groups.Length Then
result &= GroupToWords(group_value) & _
" ?, "
Else
result &= GroupToWords(group_value) & _
" " & groups(group_num) & ", "
End If
End If
Next group_num
' Remove the trailing ", ".
If result.EndsWith(", ") Then
result = result.Substring(0, result.Length - 2)
End If
Return result.Trim()
End Function
' Convert a number between 0 and 999 into words.
Private Function GroupToWords(ByVal num As Integer) As String
Static one_to_nineteen() As String = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eightteen", "nineteen"}
Static multiples_of_ten() As String = {"twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}
' If the number is 0, return an empty string.
If num = 0 Then Return ""
' Handle the hundreds digit.
Dim digit As Integer
Dim result As String = ""
If num > 99 Then
digit = num \ 100
num = num Mod 100
result = one_to_nineteen(digit) & " hundred"
End If
' If num = 0, we have hundreds only.
If num = 0 Then Return result.Trim()
' See if the rest is less than 20.
If num < 20 Then
' Look up the correct name.
result &= " " & one_to_nineteen(num)
Else
' Handle the tens digit.
digit = num \ 10
num = num Mod 10
result &= " " & multiples_of_ten(digit - 2)
' Handle the final digit.
If num > 0 Then
result &= " " & one_to_nineteen(num)
End If
End If
Return result.Trim()
End Function
thank you very much....it helps me a lot...thank you
Here is my example code (which i did some time ago) and actually used is some where:
Public Shared Function NumberToWords(number As Integer) As String
If number = 0 Then
Return "zero"
End If
If number < 0 Then
Return "minus " & NumberToWords(Math.Abs(number))
End If
Dim words As String = ""
If (number \ 1000000) > 0 Then
words += NumberToWords(number \ 1000000) & " million "
number = number Mod 1000000
End If
If (number \ 1000) > 0 Then
words += NumberToWords(number \ 1000) & " thousand "
number = number Mod 1000
End If
If (number \ 100) > 0 Then
words += NumberToWords(number \ 100) & " hundred "
number = number Mod 100
End If
If number > 0 Then
If words <> "" Then
words += "and "
End If
Dim unitsMap = New () {"zero", "one", "two", "three", "four", "five", _
"six", "seven", "eight", "nine", "ten", "eleven", _
"twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", _
"eighteen", "nineteen"}
Dim tensMap = New () {"zero", "ten", "twenty", "thirty", "forty", "fifty", _
"sixty", "seventy", "eighty", "ninety"}
If number < 20 Then
words += unitsMap(number)
Else
words += tensMap(number \ 10)
If (number Mod 10) > 0 Then
words += "-" & unitsMap(number Mod 10)
End If
End If
End If
Return words
End Function
Put this code on any event u want
I had Written it on Button Click
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = InWords(CObj(TextBox1.Text))
End Sub
Function InWords(ByVal amt As Object) As Object
Dim FIGURE As Object
Dim LENFIG As Integer
Dim FIGLEN As Integer
Dim i As Integer
Dim WORDs(19) As String
Dim tens(9) As String
WORDs(1) = "One"
WORDs(2) = "Two"
WORDs(3) = "Three"
WORDs(4) = "Four"
WORDs(5) = "Five"
WORDs(6) = "Six"
WORDs(7) = "Seven"
WORDs(8) = "Eight"
WORDs(9) = "Nine"
WORDs(10) = "Ten"
WORDs(11) = "Eleven"
WORDs(12) = "Twelve"
WORDs(13) = "Thirteen"
WORDs(14) = "Fourteen"
WORDs(15) = "Fifteen"
WORDs(16) = "Sixteen"
WORDs(17) = "Seventeen"
WORDs(18) = "Eighteen"
WORDs(19) = "Nineteen"
tens(2) = "Twenty"
tens(3) = "Thirty"
tens(4) = "Fourty"
tens(5) = "Fifty"
tens(6) = "Sixty"
tens(7) = "Seventy"
tens(8) = "Eighty"
tens(9) = "Ninety"
FIGURE = amt
FIGURE = Format(FIGURE, "FIXED")
FIGLEN = Len(FIGURE)
If FIGLEN < 12 Then
FIGURE = Space(12 - FIGLEN) & FIGURE
End If
For i = 1 To 3
If Val(Microsoft.VisualBasic.Left(FIGURE, 2)) < 20 And Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 0 Then
InWords = InWords & WORDs(Val(Microsoft.VisualBasic.Left(FIGURE, 2)))
ElseIf Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 19 Then
InWords = InWords & tens(Val(Microsoft.VisualBasic.Left(FIGURE, 1)))
InWords = InWords & WORDs(Val(Microsoft.VisualBasic.Right(Microsoft.VisualBasic.Left(FIGURE, 2), 1)))
End If
If i = 1 And Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 0 Then
InWords = InWords & " Crore "
ElseIf i = 2 And Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 0 Then
InWords = InWords & " Lakh "
ElseIf i = 3 And Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 0 Then
InWords = InWords & " Thousand "
End If
FIGURE = Mid(FIGURE, 3)
Next i
If Val(Microsoft.VisualBasic.Left(FIGURE, 1)) > 0 Then
InWords = InWords & WORDs(Val(Microsoft.VisualBasic.Left(FIGURE, 1))) + " Hundred "
End If
FIGURE = Mid(FIGURE, 2)
If Val(Microsoft.VisualBasic.Left(FIGURE, 2)) < 20 And Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 0 Then
InWords = InWords & WORDs(Val(Microsoft.VisualBasic.Left(FIGURE, 2)))
ElseIf Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 19 Then
InWords = InWords & tens(Val(Microsoft.VisualBasic.Left(FIGURE, 1)))
InWords = InWords & WORDs(Val(Microsoft.VisualBasic.Right(Microsoft.VisualBasic.Left(FIGURE, 2), 1)))
End If
FIGURE = Mid(FIGURE, 4)
If Val(Microsoft.VisualBasic.Left(FIGURE, 9)) > 1 Then
InWords = InWords & " Rupees "
ElseIf Val(Microsoft.VisualBasic.Left(FIGURE, 9)) = 1 Then
InWords = InWords & " Rupee "
End If
If Val(FIGURE) > 0 Then
InWords = InWords & " And "
If Val(Microsoft.VisualBasic.Left(FIGURE, 2)) < 20 And Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 0 Then
InWords = InWords & WORDs(Val(Microsoft.VisualBasic.Left(FIGURE, 2)))
ElseIf Val(Microsoft.VisualBasic.Left(FIGURE, 2)) > 19 Then
InWords = InWords & tens(Val(Microsoft.VisualBasic.Left(FIGURE, 1)))
InWords = InWords & WORDs(Val(Microsoft.VisualBasic.Right(Microsoft.VisualBasic.Left(FIGURE, 2), 1)))
End If
InWords = InWords & " Paise "
End If
FIGURE = amt
FIGURE = Format(FIGURE, "FIXED")
If Val(FIGURE) > 0 Then
'InWords = InWords & " Only "
Return InWords & " Only"
Else
Return "Null"
End If
End Function
End Class
I hope the person who posted the question 7 years ago has waited all the time to get your answer. Just keep on doing the good work.
And I bet he'll be really happy to get an answer that fails to meet the stated requirement for a recursive solution.
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.