Visual Basic Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
 
 
User Name:
Password:
Remember me
Go Back   ASP Free ForumsProgrammingVisual Basic Programming

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread ASP Free Forums Sponsor:
SlickEdit: Code in over 40 languages across 7 platforms. SlickEdit’s unmatched power, speed, and flexibility allows even the most accomplished developers to write better code faster. Download a free trial today!
  #1  
Old December 9th, 2004, 10:05 PM
basd555 basd555 is offline
Registered User
ASP Free Newbie (0 - 499 posts)
 
Join Date: Nov 2004
Posts: 13 basd555 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
converting numbers to text.....help please!!!!!!!!!!

hello. I desperately, desperately need to get this to work. Here's the deal. I have some numbers which represent people's pay. I need to write code which will translate number into text....just like on the paycheck. If the number says "324" it needs to spell out "three hundred twenty-four". I thought of dividing the number in thousands and hundreds and making associations with denominations, but that seems like a heck of a lot of code for something apparently so minicule. If you can solve this, i'll scream!

1,291

program output:

"one thousand two hundred ninety-one"

THANK YOU!

Reply With Quote
  #2  
Old December 9th, 2004, 11:45 PM
PrakashKatti PrakashKatti is offline
Registered User
ASP Free Newbie (0 - 499 posts)
 
Join Date: Nov 2004
Posts: 11 PrakashKatti User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 35 m
Reputation Power: 0
<%

Dim iLoop
'****************' Main Function *'****************
Public Function SpellNumber(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(cStr(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(MyNumber)
Dim Result 'As String
If 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 Left(TensText, 1) = 1 Then ' If value between 10-19
Select Case 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 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 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

%>
<%
cntNumberToWord = SpellNumber(1291)
Response.Write cntNumberToWord
%>


Happy Coding,

Prakash Katti

Reply With Quote
Reply

Viewing: ASP Free ForumsProgrammingVisual Basic Programming > converting numbers to text.....help please!!!!!!!!!!


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 4 hosted by Hostway