Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
Solved

# Converting of digits in dollars in numbers to words

Posted on 2006-06-27
Medium Priority
740 Views
Hi,

I would like to know whats the most efficient way to convert digits to words i.e

12.00 to twelve dollars

12.34 to twelve dollars and thirty-four cents.

Thanks.
0
Question by:jedistar
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points

LVL 6

Expert Comment

ID: 16993355
Hi

This is a Excel VBA function, but should be easy to convert over
http://xl.barasch.com/cCo11432.htm

or try this

http://www.vbcity.com/forums/topic.asp?tid=120553&#RID384555

0

LVL 15

Accepted Solution

JackOfPH earned 1000 total points
ID: 16997733
//**************************************
//
// Name: Currency2Text
// Description:This function converts am
//     ount in words with supplied currency par
//     ameters.
(based on AmtToWords by Atul Alurkar)
// By: Rohan Cragg
//
// Inputs:Amount As Double
UnitCurr As String ' e.g. POUND, DOLLAR, EURO
DecCurr As String ' e.g. PENNY, CENT
UnitsCurr As String ' e.g. POUNDS, DOLLARS
DecsCurr As String ' e.g. PENCE, CENTS, EUROS
UpperCase as Boolean ' optional parameter to state if you want results in UpperCase or not
//
// Returns:The currency ammount in words
//     (in English but you could easily change
//     it to another language) e.g. Curr2Text(1
//     2345.01, "POUND", "PENNY", "POUNDS", "PE
//     NCE", True) will return "TWELVE THOUSAND
//     THREE HUNDRED FORTY-FIVE POUNDS AND ONE
//     PENNY ONLY"
//
// Assumes:maximum amount that can be co
//     nverted by this function is 922,337,203,
//     685,477
//
//     www.Planet-Source-Code.com/vb/scripts/Sh
//     owCode.asp?txtCodeId=2136&lngWId=10    //for details.    //**************************************
//

Public Function Curr2Text(ByVal amount As Double, _
ByVal UnitCurr As String, _
ByVal DecCurr As String, _
ByVal UnitsCurr As String, _
ByVal DecsCurr As String, _
Optional ByVal UpperCase As Boolean = False) As String
Dim new_amt, TRstring, BIstring, MIstring, THstring, HUstring, DEstring, Separator As String
If amount = 0 Then
Curr2Text = "NIL"
Exit Function
End If
units(0) = ""
units(1) = " ONE"
units(2) = " TWO"
units(3) = " THREE"
units(4) = " FOUR"
units(5) = " FIVE"
units(6) = " SIX"
units(7) = " SEVEN"
units(8) = " EIGHT"
units(9) = " NINE"
units(10) = " TEN"
units(11) = " ELEVEN"
units(12) = " TWELVE"
units(13) = " THIRTEEN"
units(14) = " FOURTEEN"
units(15) = " FIFTEEN"
units(16) = " SIXTEEN"
units(17) = " SEVENTEEN"
units(18) = " EIGHTEEN"
units(19) = " NINETEEN"
teens(0) = ""
teens(1) = " TEN"
teens(2) = " TWENTY"
teens(3) = " THIRTY"
teens(4) = " FORTY"
teens(5) = " FIFTY"
teens(6) = " SIXTY"
teens(7) = " SEVENTY"
teens(8) = " EIGHTY"
teens(9) = " NINETY"
teens(10) = " HUNDRED"
new_amt = Format(amount, "000000000000000.00")
TRstring = Mid(new_amt, 1, 3)
BIstring = Mid(new_amt, 4, 3)
MIstring = Mid(new_amt, 7, 3)
THstring = Mid(new_amt, 10, 3)
HUstring = Mid(new_amt, 13, 3)
DEstring = "0" & Mid(new_amt, 17, 2)
Curr2Text = ""
UnitCurr = IIf(CInt(Left(new_amt, 15)) = 0, "", UnitCurr).ToString
DecCurr = IIf(CInt(Right(new_amt, 2)) = 0, "", DecCurr).ToString
UnitCurr = IIf(CInt(Left(new_amt, 15)) > 1, UnitsCurr, UnitCurr).ToString
DecCurr = IIf(CInt(Right(new_amt, 2)) > 1, DecsCurr, DecCurr).ToString
Separator = IIf(Not UnitCurr.Equals(String.Empty) And Not DecCurr.Equals(String.Empty), " AND", String.Empty).ToString
'Curr2Text = UnitCurr & Curr2Text
Curr2Text &= IIf(CInt(TRstring) > 0, numconv(TRstring) & " TRILLION", "").ToString
Curr2Text &= IIf(CInt(BIstring) > 0, numconv(BIstring) & " BILLION", "").ToString
Curr2Text &= IIf(CInt(MIstring) > 0, numconv(MIstring) & " MILLION", "").ToString
Curr2Text &= IIf(CInt(THstring) > 0, numconv(THstring) & " THOUSAND", "").ToString
Curr2Text &= IIf(CInt(HUstring) > 0, numconv(HUstring), "").ToString
Curr2Text &= " " & UnitCurr
Curr2Text &= IIf(CInt(DEstring) > 0, Separator & numconv(DEstring), "").ToString
Curr2Text = Curr2Text.Trim & IIf(Not DecCurr.Equals(String.Empty), " " & DecCurr.Trim, String.Empty).ToString
Curr2Text &= " ONLY"
If UpperCase = False Then
Return Curr2Text.Substring(0, 1) & Curr2Text.Substring(1, Curr2Text.Length - 1).ToLower
Else
Return Curr2Text
End If
End Function
Private Function numconv(ByVal amt As String) As String
Dim aAmount, bAmount, cAmount, dAmount As Integer
Dim hyphen As String
aAmount = CInt(amt.Substring(1, 2))
bAmount = CInt(amt.Substring(2, 1))
cAmount = CInt(amt.Substring(1, 1))
dAmount = CInt(amt.Substring(0, 1))
If aAmount < 20 Then
numconv = units(aAmount)
Else
numconv = units(bAmount)
If bAmount > 0 And cAmount > 0 Then
hyphen = "-"
End If
numconv = teens(cAmount) & hyphen & numconv.TrimStart
End If
If dAmount > 0 Then
If numconv.Equals(String.Empty) Then
numconv = units(dAmount) & " HUNDRED" & numconv
Else
numconv = units(dAmount) & " HUNDRED AND" & numconv
End If
End If
End Function

The above code is from ...
http://pscode.com/vb/scripts/ShowCode.asp?txtCodeId=2136&lngWId=10
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
###### Suggested Courses
Course of the Month11 days, 5 hours left to enroll