Public Function NumToString(ByVal nNumber As Currency) As String
Dim bNegative As Boolean
Dim bHundred As Boolean
If nNumber < 0 Then
bNegative = True
End If
nNumber = Abs(Int(nNumber))
If nNumber < 1000 Then
If nNumber \ 100 > 0 Then
NumToString = NumToString & _
NumToString(nNumber \ 100) & " hundred"
bHundred = True
End If
nNumber = nNumber - ((nNumber \ 100) * 100)
Dim bNoFirstDigit As Boolean
bNoFirstDigit = False
Select Case nNumber \ 10
Case 0
Select Case nNumber Mod 10
Case 0
If Not bHundred Then
NumToString = NumToString & " zero"
End If
Case 1: NumToString = NumToString & " one"
Case 2: NumToString = NumToString & " two"
Case 3: NumToString = NumToString & " three"
Case 4: NumToString = NumToString & " four"
Case 5: NumToString = NumToString & " five"
Case 6: NumToString = NumToString & " six"
Case 7: NumToString = NumToString & " seven"
Case 8: NumToString = NumToString & " eight"
Case 9: NumToString = NumToString & " nine"
End Select
bNoFirstDigit = True
Case 1
Select Case nNumber Mod 10
Case 0: NumToString = NumToString & " ten"
Case 1: NumToString = NumToString & " eleven"
Case 2: NumToString = NumToString & " twelve"
Case 3: NumToString = NumToString & " thirteen"
Case 4: NumToString = NumToString & " fourteen"
Case 5: NumToString = NumToString & " fifteen"
Case 6: NumToString = NumToString & " sixteen"
Case 7: NumToString = NumToString & " seventeen"
Case 8: NumToString = NumToString & " eighteen"
Case 9: NumToString = NumToString & " nineteen"
End Select
bNoFirstDigit = True
Case 2: NumToString = NumToString & " twenty"
Case 3: NumToString = NumToString & " thirty"
Case 4: NumToString = NumToString & " forty"
Case 5: NumToString = NumToString & " fifty"
Case 6: NumToString = NumToString & " sixty"
Case 7: NumToString = NumToString & " seventy"
Case 8: NumToString = NumToString & " eighty"
Case 9: NumToString = NumToString & " ninety"
End Select
If Not bNoFirstDigit Then
If nNumber Mod 10 <> 0 Then
NumToString = NumToString & "-" & _
Mid(NumToString(nNumber Mod 10), 2)
End If
End If
Else
Dim nTemp As Currency
nTemp = 10 ^ 12 'trillion
Do While nTemp >= 1
If nNumber >= nTemp Then
NumToString = NumToString & _
NumToString(Int(nNumber / nTemp))
Select Case Int(Log(nTemp) / Log(10) + 0.5)
Case 12: NumToString = NumToString & " trillion"
Case 9: NumToString = NumToString & " billion"
Case 6: NumToString = NumToString & " million"
Case 3: NumToString = NumToString & " thousand"
End Select
nNumber = nNumber - (Int(nNumber / nTemp) * nTemp)
End If
nTemp = nTemp / 1000
Loop
End If
If bNegative Then
NumToString = " negative" & NumToString
End If
End Function
Public Function DollarToString(ByVal nAmount As Currency) As _
String
Dim nDollar As Currency
Dim nCent As Currency
nDollar = Int(nAmount)
nCent = (Abs(nAmount) * 100) Mod 100
DollarToString = NumToString(nDollar) & " dollar"
If Abs(nDollar) <> 1 Then
DollarToString = DollarToString & "s"
End If
DollarToString = DollarToString & " and" & _
NumToString(nCent) & " cent"
If Abs(nCent) <> 1 Then
DollarToString = DollarToString & "s"
End If
End Function
DollarToString
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Post Comments
Do you have any suggestions ? Add comment. Do not spam!