Code to Convert Currency into Words.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vivek kushwaha
    New Member
    • Feb 2008
    • 7

    Code to Convert Currency into Words.

    Hi guys,
    I need codes to convert Currency into Words. e.g.
    120,500 into "One Lac. Five hundred only."

    in asp.net with vb.net 1.1.


    Please if anybody know about it. Reply me.

    Vivek.
  • dip_developer
    Recognized Expert Contributor
    • Aug 2006
    • 648

    #2
    Originally posted by vivek kushwaha
    Hi guys,
    I need codes to convert Currency into Words. e.g.
    120,500 into "One Lac. Five hundred only."

    in asp.net with vb.net 1.1.


    Please if anybody know about it. Reply me.

    Vivek.

    I have got a function from a website...call this function like this
    [CODE=vbnet] Dim rs as Integer
    Dim rsWord as String=RupeesTo Word(rs)
    [/CODE]
    ............... ............see if it helps...



    [CODE=vbnet]
    Function RupeesToWord(By Val MyNumber)
    Dim Temp
    Dim Rupees, Paisa As String
    Dim DecimalPlace, iCount
    Dim Hundreds, Words As String
    Dim place(9) As String
    place(0) = " Thousand "
    place(2) = " Lakh "
    place(4) = " Crore "
    place(6) = " Arab "
    place(8) = " Kharab "
    On Error Resume Next
    ' Convert MyNumber to a string, trimming extra spaces.
    MyNumber = Trim(Str(MyNumb er))
    ' Find decimal place.
    DecimalPlace = InStr(MyNumber, ".")
    ' If we find decimal place...
    If DecimalPlace > 0 Then
    ' Convert Paisa
    Temp = Left(Mid(MyNumb er, DecimalPlace + 1) & "00", 2)
    Paisa = " and " & ConvertTens(Tem p) & " Paisa"
    ' Strip off paisa from remainder to convert.
    MyNumber = Trim(Left(MyNum ber, DecimalPlace - 1))
    End If
    '============== =============== =============== =============== ====
    Dim TM As String ' If MyNumber between Rs.1 To 99 Only.
    TM = Right(MyNumber, 2)
    If Len(MyNumber) > 0 And Len(MyNumber) <= 2 Then
    If Len(TM) = 1 Then
    Words = ConvertDigit(TM )
    RupeesToWord = "Rupees " & Words & Paisa & " Only"
    Exit Function
    Else
    If Len(TM) = 2 Then
    Words = ConvertTens(TM)
    RupeesToWord = "Rupees " & Words & Paisa & " Only"
    Exit Function
    End If
    End If
    End If
    '============== =============== =============== =============== ====

    ' Convert last 3 digits of MyNumber to ruppees in word.
    Hundreds = ConvertHundreds (Right(MyNumber , 3))
    ' Strip off last three digits
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    iCount = 0
    Do While MyNumber <> ""
    'Strip last two digits
    Temp = Right(MyNumber, 2)
    If Len(MyNumber) = 1 Then

    If Trim(Words) = "Thousand" Or _
    Trim(Words) = "Lakh Thousand" Or _
    Trim(Words) = "Lakh" Or _
    Trim(Words) = "Crore" Or _
    Trim(Words) = "Crore Lakh Thousand" Or _
    Trim(Words) = "Arab Crore Lakh Thousand" Or _
    Trim(Words) = "Arab" Or _
    Trim(Words) = "Kharab Arab Crore Lakh Thousand" Or _
    Trim(Words) = "Kharab" Then
    Words = ConvertDigit(Te mp) & place(iCount)
    MyNumber = Left(MyNumber, Len(MyNumber) - 1)
    Else
    Words = ConvertDigit(Te mp) & place(iCount) & Words
    MyNumber = Left(MyNumber, Len(MyNumber) - 1)
    End If
    Else
    If Trim(Words) = "Thousand" Or _
    Trim(Words) = "Lakh Thousand" Or _
    Trim(Words) = "Lakh" Or _
    Trim(Words) = "Crore" Or _
    Trim(Words) = "Crore Lakh Thousand" Or _
    Trim(Words) = "Arab Crore Lakh Thousand" Or _
    Trim(Words) = "Arab" Then

    Words = ConvertTens(Tem p) & place(iCount)

    MyNumber = Left(MyNumber, Len(MyNumber) - 2)
    Else
    Words = ConvertTens(Tem p) & place(iCount) & Words
    MyNumber = Left(MyNumber, Len(MyNumber) - 2)
    End If
    End If
    iCount = iCount + 2
    Loop
    RupeesToWord = "Rupees " & Words & Hundreds & Paisa & " Only"
    End Function
    ' Conversion for hundreds
    '************** *************** ************
    Private Function ConvertHundreds (ByVal MyNumber)
    Dim Result As String
    ' Exit if there is nothing to convert.
    If Val(MyNumber) = 0 Then Exit Function
    ' Append leading zeros to number.
    MyNumber = Right("000" & MyNumber, 3)
    ' Do we have a hundreds place digit to convert?
    If Left(MyNumber, 1) <> "0" Then
    Result = ConvertDigit(Le ft(MyNumber, 1)) & " Hundreds "
    End If
    ' Do we have a tens place digit to convert?
    If Mid(MyNumber, 2, 1) <> "0" Then
    Result = Result & ConvertTens(Mid (MyNumber, 2))
    Else
    ' If not, then convert the ones place digit.
    Result = Result & ConvertDigit(Mi d(MyNumber, 3))
    End If
    ConvertHundreds = Trim(Result)
    End Function
    ' Conversion for tens
    '************** *************** ************
    Private Function ConvertTens(ByV al MyTens)
    Dim Result As String
    ' Is value between 10 and 19?
    If Val(Left(MyTens , 1)) = 1 Then
    Select Case Val(MyTens)
    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
    ' .. otherwise it's between 20 and 99.
    Select Case Val(Left(MyTens , 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
    ' Convert ones place digit.
    Result = Result & ConvertDigit(Ri ght(MyTens, 1))
    End If
    ConvertTens = Result
    End Function
    Private Function ConvertDigit(By Val MyDigit)
    Select Case Val(MyDigit)
    Case 1 : ConvertDigit = "One"
    Case 2 : ConvertDigit = "Two"
    Case 3 : ConvertDigit = "Three"
    Case 4 : ConvertDigit = "Four"
    Case 5 : ConvertDigit = "Five"
    Case 6 : ConvertDigit = "Six"
    Case 7 : ConvertDigit = "Seven"
    Case 8 : ConvertDigit = "Eight"
    Case 9 : ConvertDigit = "Nine"
    Case Else : ConvertDigit = ""
    End Select
    End Function [/CODE]

    Comment

    • vivek kushwaha
      New Member
      • Feb 2008
      • 7

      #3
      Thanx for the CODE.

      I really appreciate it. It's working fine.

      Comment

      Working...