Code archives/Algorithms/Convert Integers to Words

This code has been declared by its author to be Public Domain code.

Download source code

Convert Integers to Words by Malice
(Posted 22 years ago)
Newly Updated (revision: 15th January 2006)

These two functions take a passed Integer, i.e. 305612 and convert the number to descriptive text such as "THREE HUNDRED AND FIVE THOUSAND, SIX HUNDRED AND TWELVE"

To call the function use:

My_Variable$=Value$(integer)

where integer is the variable you wish to test. Any values higher than 100,999,999 will not be resolved.
;Convert Integer To String
;Submitted by Malice

Function value$(x)

;___________________________________________RETURN SPECIAL VALUE FOR "0"

	If x=0 Then Return "NONE"

;___________________________________________SPLIT THE NUMBER INTO CONSTITUENT PARTS

	z= x Mod 1000000
	millions=Floor(x/1000000)
	x=z

	z= x Mod 100000
	hundredthousands=Floor(x/100000)
	x=z

	z= x Mod 1000
	thousands=Floor(x/1000)
	x=z

	z= x Mod 100
	hundreds=Floor(x/100)
	x=z

	units=x

;___________________________________________CONVERT EACH PART TO WORDS

		mil$=convert$(millions)
		hth$=convert$(hundredthousands)
		tho$=convert$(thousands)
		hun$=convert$(hundreds)
		uni$=convert$(units)

;___________________________________________STORE THE RESULTS IN A SINGLE STRING AND ADJUST FOR GRAMMAR

a$=mil$

If millions>0 Then a$=a$+" MILLION"

If hundredthousands>0 And millions>0 Then a$=a$+","

If hth$>"" Then a$=a$+" "+hth$

If hundredthousands>0 Then a$=a$+" HUNDRED"

If thousands>0 And (millions+hundredthousands)>0 Then a$=a$+" AND"

If tho$>"" Then a$=a$+" "+tho$

If thousands>0 Or hundredthousands>0 Then a$=a$+" THOUSAND"

If hundreds>0 And thousands+hundredthousands+millions>0 Then a$=a$+","

If hun$>"" Then a$=a$+" "+hun$

If hundreds>0 Then a$=a$+" HUNDRED"

If units>0 And hundreds+thousands+hundredthousands+millions>0 Then a$=a$+" AND"

If uni$>"" Then a$=a$+" "+uni$

		
		Replace$(a$,"     "," ")
		Replace$(a$,"    "," ")
		Replace$(a$,"   "," ")
		Replace$(a$,"  "," ")
						
		While Left$(a$,1)=" "
			a$=Right$(a$,(Len(a$)-1))
		Wend

;_________________________________________________RETURN THE RESULT AND END THE FUNCTION

Return a$
End Function

;_________________________________________________SECONDARY FUNCTION TO CONVERT TO WORDS

Function convert$(integer)

		Select integer
			Case 0
				integer_text$=""
			Case 1
				integer_text$="ONE"
			Case 2
				integer_text$="TWO"
			Case 3
				integer_text$="THREE"
			Case 4
				integer_text$="FOUR"
			Case 5
				integer_text$="FIVE"
			Case 6
				integer_text$="SIX"
			Case 7
				integer_text$="SEVEN"
			Case 8
				integer_text$="EIGHT"
			Case 9
				integer_text$="NINE"
			Case 10 
				integer_text$="TEN"
			Case 11
				integer_text$="ELEVEN"
			Case 12
				integer_text$="TWELVE"
			Case 13
				integer_text$="THIRTEEN"
			Case 14
				integer_text$="FOURTEEN"
			Case 15
				integer_text$="FIFTEEN"				
			Case 16
				integer_text$="SIXTEEN"	
			Case 17
				integer_text$="SEVENTEEN"
			Case 18
				integer_text$="EIGHTEEN"
			Case 19
				integer_text$="NINETEEN"
			Case 20
				integer_text$="TWENTY"
			Case 21
				integer_text$="TWENTY-ONE"
			Case 0
				integer_text$="NIL"
			Case 1
				integer_text$="ONE"
			Case 2
				integer_text$="TWO"
			Case 3
				integer_text$="THREE"
			Case 4
				integer_text$="FOUR"
			Case 5
				integer_text$="FIVE"
			Case 6
				integer_text$="SIX"
			Case 7
				integer_text$="SEVEN"
			Case 8
				integer_text$="EIGHT"
			Case 9
				integer_text$="NINE"
			Case 10 
				integer_text$="TEN"
			Case 11
				integer_text$="ELEVEN"
			Case 12
				integer_text$="TWELVE"
			Case 13
				integer_text$="THIRTEEN"
			Case 14
				integer_text$="FOURTEEN"
			Case 15
				integer_text$="FIFTEEN"				
			Case 16
				integer_text$="SIXTEEN"	
			Case 17
				integer_text$="SEVENTEEN"
			Case 18
				integer_text$="EIGHTEEN"
			Case 19
				integer_text$="NINETEEN"
			Case 20
				integer_text$="TWENTY"
			Case 21
				integer_text$="TWENTY-ONE"
			Case 22
				integer_text$="TWENTY-TWO"
			Case 23
				integer_text$="TWENTY-THREE"
			Case 24
				integer_text$="TWENTY-FOUR"
			Case 25
				integer_text$="TWENTY-FIVE"
			Case 26
				integer_text$="TWENTY-SIX"
			Case 27
				integer_text$="TWENTY-SEVEN"
			Case 28
				integer_text$="TWENTY-EIGHT"
			Case 29
				integer_text$="TWENTY-NINE"
			Case 30
				integer_text$="THIRTY"
			Case 31
				integer_text$="THIRTY-ONE"
			Case 32 
				integer_text$="THIRTY-TWO"
			Case 33
				integer_text$="THIRTY-THREE"
			Case 34
				integer_text$="THIRTY-FOUR"
			Case 35
				integer_text$="THIRTY-FIVE"
			Case 36
				integer_text$="THIRTY-SIX"
			Case 37
				integer_text$="THIRTY-SEVEN"			
			Case 38
				integer_text$="THIRTY-EIGHT"	
			Case 39
				integer_text$="THIRTY-NINE"
			Case 40
				integer_text$="FORTY"
			Case 41
				integer_text$="FORTY-ONE"
			Case 42
				integer_text$="FORTY-TWO"
			Case 43
				integer_text$="FORTY-THREE"
			Case 44
				integer_text$="FORTY-FOUR"
			Case 45
				integer_text$="FORTY-FIVE"
			Case 46
				integer_text$="FORTY-SIX"
			Case 47
				integer_text$="FORTY-SEVEN"
			Case 48
				integer_text$="FORTY-EIGHT"
			Case 49
				integer_text$="FORTY-NINE"
			Case 50
				integer_text$="FIFTY"
			Case 51
				integer_text$="FIFTY-ONE"
			Case 52
				integer_text$="FIFTY-TWO"
			Case 53
				integer_text$="FIFTY-THREE"
			Case 54 
				integer_text$="FIFTY-FOUR"
			Case 55
				integer_text$="FIFTY-FIVE"
			Case 56
				integer_text$="FIFTY-SIX
			Case 57
				integer_text$="FIFTY-SEVEN"
			Case 58
				integer_text$="FIFTY-EIGHT"
			Case 59
				integer_text$="FIFTY-NINE"			
			Case 60
				integer_text$="SIXTY"
			Case 61
				integer_text$="SIXTY-ONE"
			Case 62
				integer_text$="SIXTY-TWO"
			Case 63
				integer_text$="SIXTY-THREE"
			Case 64
				integer_text$="SIXTY-FOUR"
			Case 65
				integer_text$="SIXTY-FIVE"
			Case 66
				integer_text$="SIXTY-SIX"
			Case 67
				integer_text$="SIXTY-SEVEN"
			Case 68
				integer_text$="SIXTY-EIGHT"
			Case 69
				integer_text$="SIXTY-NINE"
			Case 70
				integer_text$="SEVENTY"
			Case 71
				integer_text$="SEVENTY-ONE"
			Case 72
				integer_text$="SEVENTY-TWO"
			Case 73
				integer_text$="SEVENTY-THREE"
			Case 74
				integer_text$="SEVENTY-FOUR"
			Case 75
				integer_text$="SEVENTY-FIVE"
			Case 76 
				integer_text$="SEVENTY-SIX"
			Case 77
				integer_text$="SEVENTY-SEVEN"
			Case 78
				integer_text$="SEVENTY-EIGHT"
			Case 79
				integer_text$="SEVENTY-NINE"
			Case 80
				integer_text$="EIGHTY"
			Case 81
				integer_text$="EIGHTY-ONE"				
			Case 82
				integer_text$="EIGHTY-TWO"	
			Case 83
				integer_text$="EIGHTY-THREE"
			Case 84
				integer_text$="EIGHTY-FOUR"
			Case 85
				integer_text$="EIGHTY-FIVE"
			Case 86
				integer_text$="EIGHTY-SIX"
			Case 87
				integer_text$="EIGHTY-SEVEN"
			Case 88
				integer_text$="EIGHTY-EIGHT"
			Case 89
				integer_text$="EIGHTY-NINE"
			Case 90
				integer_text$="NINETY"
			Case 91
				integer_text$="NINETY-ONE"
			Case 92
				integer_text$="NINETY-TWO"
			Case 93
				integer_text$="NINETY-THREE"
			Case 94
				integer_text$="NINETY-FOUR"
			Case 95
				integer_text$="NINETY-FIVE"
			Case 96
				integer_text$="NINETY-SIX"
			Case 97
				integer_text$="NINETY-SEVEN"
			Case 98 
				integer_text$="NINETY-EIGHT"
			Case 99
				integer_text$="NINETY-NINE"
			Case 100
				integer_text$="ONE-HUNDRED"
				
		End Select
					
	Return integer_text$ 

End Function