473,473 Members | 4,208 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

heeeeeeeeeeeeeeelp!

19 New Member
help please.. i need to get a number converted into words.. for example
100 = one hundred .. 10 = ten.... 1000 = one thousand.....

could u give me a vb built in function for this? or a code??
Mar 20 '08 #1
2 981
anuragshrivastava64
66 New Member
Bit Lengthy but works
Expand|Select|Wrap|Line Numbers
  1. Public Function Num2Word(ByVal txtnumber As String)
  2.     Dim dblNumber As Double
  3.     Dim strNumber As String
  4.     Dim intLen As Integer
  5.     Dim strTemp As String, strTemp1 As String, strTemp2 As String
  6.     Dim strOut As String
  7.     Dim i As Integer
  8.     Dim Ones(0 To 19) As String
  9.     Dim Tens(0 To 9) As String
  10.     Dim PValue(1 To 6) As String
  11.     If val(txtnumber) < 0 Then
  12.         Num2Word = ""
  13.         Exit Function
  14.     End If
  15.     Ones(0) = ""
  16.     Ones(1) = "One "
  17.     Ones(2) = "Two "
  18.     Ones(3) = "Three "
  19.     Ones(4) = "Four "
  20.     Ones(5) = "Five "
  21.     Ones(6) = "Six "
  22.     Ones(7) = "Seven "
  23.     Ones(8) = "Eight "
  24.     Ones(9) = "Nine "
  25.     Ones(10) = "Ten "
  26.     Ones(11) = "Eleven "
  27.     Ones(12) = "Twelve "
  28.     Ones(13) = "Thirteen "
  29.     Ones(14) = "Fourteen "
  30.     Ones(15) = "Fifteen "
  31.     Ones(16) = "Sixteen "
  32.     Ones(17) = "Seventeen "
  33.     Ones(18) = "Eighteen "
  34.     Ones(19) = "Nineteen "
  35.  
  36.     Tens(0) = ""
  37.     Tens(1) = "Ten "
  38.     Tens(2) = "Twenty "
  39.     Tens(3) = "Thirty "
  40.     Tens(4) = "Forty "
  41.     Tens(5) = "Fifty "
  42.     Tens(6) = "Sixty "
  43.     Tens(7) = "Seventy "
  44.     Tens(8) = "Eighty "
  45.     Tens(9) = "Ninety "
  46.  
  47.     PValue(6) = "Crore "
  48.     PValue(5) = "Lakh "
  49.     PValue(4) = "Thousand "
  50.     PValue(3) = "Hundred "
  51.     PValue(2) = ""
  52.     PValue(1) = ""
  53.  
  54.     If txtnumber = "" Then
  55.         Exit Function
  56.     End If
  57.  
  58.     dblNumber = val(txtnumber) * 100
  59.     strNumber = CStr(dblNumber)
  60.     intLen = Len(strNumber)
  61.  
  62.     If intLen > 5 Then
  63.         strNumber = Left(strNumber, intLen - 5) + "0" + right(strNumber, 5)
  64.         intLen = intLen + 1
  65.     End If
  66.  
  67.     If intLen Mod 2 = 1 Then
  68.         strNumber = "0" + strNumber
  69.         intLen = intLen + 1
  70.     End If
  71.  
  72.     strOut = ""
  73.     For i = 1 To intLen Step 2
  74.         strTemp = Mid(strNumber, i, 2)
  75.         If strTemp <> "00" Then
  76.             If (intLen - i + 1) / 2 = 1 Then
  77.                 strOut = strOut + IIf(dblNumber - Int(dblNumber) > 0, " And Paise ", " And Paise ")
  78.             End If
  79.             If val(strTemp) < 20 Then
  80.                 strOut = strOut + Ones(val(strTemp))
  81.             Else
  82.                 strTemp1 = Left(strTemp, 1)
  83.                 strTemp2 = right(strTemp, 1)
  84.                 strOut = strOut + Tens(val(strTemp1)) + Ones(val(strTemp2))
  85.             End If
  86.             strOut = strOut + PValue((intLen - i + 1) / 2)
  87.         End If
  88.     Next
  89.     Num2Word = strOut
  90. End Function
Mar 20 '08 #2
debasisdas
8,127 Recognized Expert Expert
You can easily get it done if using Oracle at database level itself.
Mar 20 '08 #3

Sign in to post your reply or Sign up for a free account.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.