Chat LIVE With Programming Experts! There Are 23 Online Right Now...

 

Code Snippets

  

VB.NET Source Code


Welcome to Dream.In.Code
Become a VB.NET Expert!

Join 244,257 VB.NET Programmers for FREE! Get instant access to thousands of VB.NET experts, tutorials, code snippets, and more! There are 1,296 people online right now. Registration is fast and FREE... Join Now!





Number into Words

Converts the number into its textual representation.

Submitted By: AdamSpeight2008
Actions:
Rating:
Views: 1,126

Language: VB.NET

Last Modified: July 25, 2008

Snippet


  1. Module Module1
  2.  
  3.     Sub Main()
  4.         '    Console.Write(WriteNumber(1234567890))
  5.         Console.WriteLine(WriteNumber(987654321012345678))
  6.         For i As Long = 99999999 To 100000001
  7.             Console.WriteLine(i.ToString & vbTab & "[" & WriteNumber(i) & "]")
  8.  
  9.         Next
  10.         Console.ReadKey()
  11.     End Sub
  12.  
  13.     Dim nums() As String = { _
  14.     "", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", _
  15.     "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Ninteen" _
  16.     }
  17.     Dim tens() As String = {"", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninty"}
  18.  
  19.     Public Function WriteNumber(ByVal Number As Long, Optional ByVal Level As Long = 0) As String
  20.         If (Level = 0) And (Number = 0) Then Return "Zero"
  21.         If (Level > 0) And (Number = 0) Then Return ""
  22.         If Number < 0 Then Return "Negative " & WriteNumber(Math.Abs(Number))
  23.         Select Case Number
  24.             Case Is < 20 : Return nums(Number) & " "
  25.             Case 20 To 99 : Return tens(Number \ 10) & " " & WriteNumber(Number Mod 10, Level + 1)
  26.             Case 100 To 999 : Return nums(Number \ 100) & " Hundred " & IIf(((Number Mod 1000) = 0), "and ", "") & WriteNumber(Number Mod 100, Level + 1)
  27.             Case 1000 To 999999 : Return WriteNumber(Number \ 1000, Level + 1) & "Thousand " & IIf(Number Mod 1000 = 0, "", " ") & WriteNumber(Number Mod 1000, Level + 1)
  28.             Case 10 ^ 6 To 10 ^ 12 - 1 : Return WriteNumber(Number \ 10 ^ 6, Level + 1) & "Million " & IIf(Number Mod 10 ^ 6 = 0, "", " ") & WriteNumber(Number Mod 10 ^ 6, Level + 1)
  29.             Case Is >= 10 ^ 12 : Return WriteNumber(Number \ 10 ^ 12, Level + 1) & "Billion " & IIf(Number Mod 10 ^ 12 = 0, "", " ") & WriteNumber(Number Mod 10 ^ 12, Level + 1)
  30.  
  31.         End Select
  32.         Return ""
  33.     End Function
  34. End Module

Copy & Paste


Comments


There are currently no comments for this snippet. Be the first to comment!

Add comment


You must be registered and logged on to </dream.in.code> to leave comments.





Live VB.NET Help!

Be Social

Dream.In.Code RSS Feed Dream.In.Code LinkedIn Group Follow Us On Twitter Fan Us On Facebook

VB.NET Tutorials

Reference Sheets

VB.NET Snippets

DIC Chatroom

Bye Bye Ads

Monthly Drawing

Thumb Drive

Top Contributors

Top 10 Kudos This Month