-1

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

10
Contributors
11
Replies
16
Views
8 Years
Discussion Span
Last Post by JamesCherrill
Featured Replies
  • 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. Read More

  • And I bet he'll be really happy to get an answer that fails to meet the stated requirement for a recursive solution. Read More

0

how could i make a program that will convert the numeric number into words?
i want the whole sample code..please..
thank you

1

waynespangler has provided you with two links that show how the conversion works. What more do you need?

Votes + Comments
Agree
-1

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

Votes + Comments
efforts?
0

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.

0

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
0

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

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

Edited by रामदास

2

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.

1

And I bet he'll be really happy to get an answer that fails to meet the stated requirement for a recursive solution.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.