0% found this document useful (0 votes)
617 views3 pages

Spell Number

This VB program converts numbers to words. It contains main and helper functions to convert hundreds, tens, ones and determine punctuation for rupees and paisas. The main function SpellNumber takes a number, isolates the decimal and whole numbers, then calls the helper functions to convert digit groups to words and return the full spelled out amount with appropriate punctuation. The helper functions GetHundreds, GetTens and GetDigit contain select case statements to map digits to their word representations individually or in groups.

Uploaded by

Adnan Vohra
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
617 views3 pages

Spell Number

This VB program converts numbers to words. It contains main and helper functions to convert hundreds, tens, ones and determine punctuation for rupees and paisas. The main function SpellNumber takes a number, isolates the decimal and whole numbers, then calls the helper functions to convert digit groups to words and return the full spelled out amount with appropriate punctuation. The helper functions GetHundreds, GetTens and GetDigit contain select case statements to map digits to their word representations individually or in groups.

Uploaded by

Adnan Vohra
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

'VB PROGRAM TO CONVERT THE NUMBER TO WORD 'AUTHOR - RAJIV DUA (IMPACT TEAM) 'DATE - 22nd APRIL 2001

'Updated for new requirements - 3rd March 2004 (RAJIV DUA) Option Explicit Dim iLoop ' For Lacs '****************' Main Function *'**************** Public Function SpellNumber(ByVal MyNumber) Dim Rupees, Paisas, Temp Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Lacs " ' Place(4) = " Crores " Place(5) = " Trillion " MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none ' Expand the logic to 999 crores from 9 lacs If (MyNumber > 999999999.99) Then 'If (MyNumber > 999999.99) Then SpellNumber = "Digit excced Maximum limit" Exit Function End If DecimalPlace = InStr(MyNumber, ".") 'Convert Paisas and set MyNumber to rupees amount If DecimalPlace > 0 Then Paisas = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Dim iTemp As Integer Do While MyNumber <> "" If (Count >= 2) Then iTemp = Right(MyNumber, 2) Else If (Len(MyNumber) = 2) Then iTemp = Right(MyNumber, 2) ElseIf (Len(MyNumber) = 1) Then iTemp = Right(MyNumber, 1) Else iTemp = Right(MyNumber, 3) End If End If If iTemp > 99 Then iTemp = Right(MyNumber, 3) Temp = GetHundreds(iTemp) ElseIf iTemp <= 99 And iTemp > 9 Then iTemp = Right(MyNumber, 2) Temp = GetTens(iTemp) ElseIf iTemp < 10 Then iTemp = Right(MyNumber, 2) Temp = GetDigit(iTemp) End If 'end if If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees End If 'If Len(MyNumber) > 3 Then If Count = 2 Then

If Len(MyNumber) = 1 Then MyNumber = "" Else MyNumber = Left(MyNumber, Len(MyNumber) - 2) End If ElseIf Count = 3 Then If Len(MyNumber) >= 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 2) Else MyNumber = "" End If ElseIf Count = 4 Then MyNumber = "" Else If Len(MyNumber) <= 2 Then MyNumber = "" Else MyNumber = Left(MyNumber, Len(MyNumber) - 3) End If End If Count = Count + 1 Loop Select Case Rupees Case "" Rupees = "No Rupees" Case "One" Rupees = "One Rupee" Case Else Rupees = " Rupees " & Rupees End Select Select Case Paisas Case "" Paisas = "" Case "One" Paisas = " and One Paisa" Case Else Paisas = " and " & Paisas & " Paisas" End Select SpellNumber = Rupees & Paisas & " Only" iLoop = 0 End Function '******************************************* ' Converts a number from 100-999 into text * '******************************************* Function GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) 'Convert the hundreds place If Mid(MyNumber, 1, 1) <> "0" Then If (iLoop > 0) Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " Lac " iLoop = 0 Else Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred " iLoop = iLoop + 1 End If End If 'Convert the tens and ones place If Mid(MyNumber, 2, 1) <> "0" Then Result = Result & GetTens(Mid(MyNumber, 2))

Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End Function '********************************************* ' Converts a number from 10 to 99 into text. * '********************************************* Function GetTens(TensText) Dim Result As String Result = "" 'null out the temporary function value If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19 Select Case Val(TensText) Case 10: Result = "Ten" Case 11: Result = "Eleven" Case 12: Result = "Twelve" Case 13: Result = "Thirteen" Case 14: Result = "Fourteen" Case 15: Result = "Fifteen" Case 16: Result = "Sixteen" Case 17: Result = "Seventeen" Case 18: Result = "Eighteen" Case 19: Result = "Nineteen" Case Else End Select Else ' If value between 20-99 Select Case Val(Left(TensText, 1)) Case 2: Result = "Twenty " Case 3: Result = "Thirty " Case 4: Result = "Forty " Case 5: Result = "Fifty " Case 6: Result = "Sixty " Case 7: Result = "Seventy " Case 8: Result = "Eighty " Case 9: Result = "Ninety " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1)) 'Retrieve ones place End If GetTens = Result End Function '******************************************* ' Converts a number from 1 to 9 into text. * '******************************************* Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else: GetDigit = "" End Select End Function

You might also like