0% found this document useful (0 votes)
69 views

Function SpellNumber

This VBScript function takes a numeric value as a parameter and returns a string representing the spoken word equivalent of that number in Arabic. It contains nested functions to extract portions of the number, determine the hundreds, tens, and ones digits, and return the spoken word for each value up to the billions place value. The main function combines these parts to return a full spoken word version of the number in the format of "Dollars and Cents".

Uploaded by

Malik Awan
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views

Function SpellNumber

This VBScript function takes a numeric value as a parameter and returns a string representing the spoken word equivalent of that number in Arabic. It contains nested functions to extract portions of the number, determine the hundreds, tens, and ones digits, and return the spoken word for each value up to the billions place value. The main function combines these parts to return a full spoken word version of the number in the format of "Dollars and Cents".

Uploaded by

Malik Awan
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Function SpellNumber(ByVal MyNumber)

Dim Dollars As String, Cents As String

Dim Temp As String, DecimalPlace As Integer

Dim Count As Integer

ReDim Place(9) As String

Place(2) = " Thousand "

Place(3) = " Million "

Place(4) = " Billion "

Place(5) = " Trillion "

MyNumber = Trim(Str(MyNumber))

DecimalPlace = InStr(MyNumber, ".")

If DecimalPlace > 0 Then

Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))

MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

End If

Count = 1

Do While MyNumber <> ""

Temp = GetHundreds(Right(MyNumber, 3))

If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars

If Len(MyNumber) > 3 Then

MyNumber = Left(MyNumber, Len(MyNumber) - 3)

Else

MyNumber = ""

End If

Count = Count + 1

Loop
Select Case Dollars

Case ""

Dollars = "Zero Dollars"

Case "One"

Dollars = "One Dirham"

Case Else

Dollars = Dollars & " Dirhams"

End Select

Select Case Cents

Case ""

Cents = " and Zero Fils"

Case "One"

Cents = " and One Fils"

Case Else

Cents = " and " & Cents & " Fils"

End Select

SpellNumber = Dollars & Cents

End Function

Private Function GetHundreds(ByVal MyNumber)

Dim Result As String

If Val(MyNumber) = 0 Then Exit Function

MyNumber = Right("000" & MyNumber, 3)

If Mid(MyNumber, 1, 1) <> "0" Then

Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "


End If

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

Private Function GetTens(ByVal TensText)

Dim Result As String

Result = ""

If Val(Left(TensText, 1)) = 1 Then

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

End If

GetTens = Result

End Function

Private Function GetDigit(ByVal 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