by NAIR VINODKUMAR BALAN, if found useful kindly acknowledge by mailing me. (1 Submission)
Category: Miscellaneous
Compatability: VB 6.0
Difficulty: Unknown Difficulty
Originally Published: Thu 15th December 2005
Date Added: Mon 8th February 2021
Rating:
(1 Votes)
CONVERTING 12DIGIT FIGURE TO WORDS
API Declarations
''created by vinodbalan
Dim x As Integer
'Main Function
Public Function SpellNumber(mynumber As String)
Dim Rupees, Paise, Temp
Dim decimalplace, Count
Dim x As Integer
Dim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Lakh "
Place(4) = " Crore "
Place(5) = " Thousand "
'Place(6) = " Thousand"
'Place(7) = " Lakh"
' String representation of amount
x = Len(mynumber)
mynumber = Str(mynumber)
' Position of decimal place 0 if none
decimalplace = InStr(mynumber, ".")
'Convert Paise and set MyNumber to dollar amount
If decimalplace > 0 Then
Paise = GetTens(Left(Mid(mynumber, decimalplace + 1) & "00", 2))
mynumber = Trim(Left(mynumber, decimalplace - 1))
End If
Count = 1
Do While mynumber <> ""
If Count < 2 Then
Temp = GetHundreds(Right(mynumber, 3))
If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
If Len(mynumber) > 3 Then
mynumber = Left(mynumber, Len(mynumber) - 3)
Else
mynumber = ""
End If
ElseIf Count > 1 And Count < 4 Then
If Len(mynumber) = 1 Then
Temp = GetDigit(mynumber)
Else
Temp = GetTens(Right(mynumber, 2))
End If
If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
If Len(mynumber) > 2 Then
mynumber = Left(mynumber, Len(mynumber) - 2)
Else
mynumber = ""
End If
ElseIf Count > 3 Then
Temp = GetHundreds(Right(mynumber, 3))
If Temp <> "" Then
Rupees = Temp & Place(Count) & Rupees
ElseIf Count = 4 And Temp = "" And x > 9 Then
Rupees = Place(Count) & Rupees
End If
If Len(mynumber) > 3 Then
mynumber = Left(mynumber, Len(mynumber) - 3)
Else
mynumber = ""
End If
End If
Count = Count + 1
Loop
Select Case Rupees
Case ""
Rupees = "Zero Rupees"
Case "One"
Rupees = "One Rupee"
Case Else
Rupees = Rupees & " Rupees"
End Select
Select Case Paise
Case ""
Paise = " and Zero Paise."
Case "One"
Paise = " and One Paise."
Case Else
Paise = " and " & Paise & " Paise."
End Select
SpellNumber = Rupees & Paise
End Function
'Converts a number from 100-999 into text
Public Function GetHundreds(mynumber As String)
Dim Result As String
mynumber = Trim(mynumber)
If Val(mynumber) = 0 Then Exit Function
mynumber = Right("000" & mynumber, 3) ' ???????????????
'Convert the hundreds place
If Mid(mynumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(mynumber, 1, 1)) & " Hundred "
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
Public Function GetTens(TensText As String)
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 "
Private Sub Text1_KeyPress(KeyAscii As Integer)
If x = 0 Then
If KeyAscii = vbKeyReturn Then
Text2.Text = SpellNumber(Val(Text1.Text))
x = 1
End If
Else
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
x = 0
End If
End Sub