BBS: Inland Empire Archive Date: 03-13-93 (02:11) Number: 384 From: TOM COAKLEY Refer#: NONE To: ALL Recvd: NO Subj: Number to a string Conf: (2) Quik_Bas
I saw an earlier post where someone requested some quick basic code that
would convert a number (123.15) to a string (One Hundred Twenty Three
15/100)
I pulled the following code from a one of my programs.
========================================================================
SUB NUMWORD (NUM#, WORD$)
DIM ONEARRAY$(9)
DIM NUMARRAY$(9)
DIM TEENARRAY$(9)
ONEARRAY$(1) = "One "
ONEARRAY$(2) = "Two "
ONEARRAY$(3) = "Three "
ONEARRAY$(4) = "Four "
ONEARRAY$(5) = "Five "
ONEARRAY$(6) = "Six "
ONEARRAY$(7) = "Seven "
ONEARRAY$(8) = "Eight "
ONEARRAY$(9) = "Nine "
NUMARRAY$(1) = "TEEN LISTING"
NUMARRAY$(2) = "Twenty "
NUMARRAY$(3) = "Thirty "
NUMARRAY$(4) = "Forty "
NUMARRAY$(5) = "Fifty "
NUMARRAY$(6) = "Sixty "
NUMARRAY$(7) = "Seventy "
NUMARRAY$(8) = "Eighty "
NUMARRAY$(9) = "Ninety "
TEENARRAY$(1) = "Eleven "
TEENARRAY$(2) = "Twelve "
TEENARRAY$(3) = "Thirteen "
TEENARRAY$(4) = "Fourteen "
TEENARRAY$(5) = "Fifteen "
TEENARRAY$(6) = "Sixteen "
TEENARRAY$(7) = "Seventeen "
TEENARRAY$(8) = "Eighteen "
TEENARRAY$(9) = "Nineteen "
WORD$ = ""
NUM$ = STR$(NUM#)
NUM$ = RIGHT$(NUM$, LEN(NUM$) - 1)
NUMLEN = LEN(NUM$)
DECCHECK = INSTR(NUM$, ".")
IF DECCHECK > 0 THEN
DECIMAL$ = RIGHT$(NUM$, NUMLEN - DECCHECK)
END IF
DENOMINATOR$ = "10"
FOR ZEROS = 1 TO LEN(DECIMAL$)
DENOMINATOR$ = DENOMINATOR$ + "0"
NEXT ZEROS
DECIMAL$ = DECIMAL$ + "/" + DENOMINATOR$
NUM$ = LEFT$(NUM$, DECCHECK - 1)
NUMLEN = LEN(NUM$)
WHILE NUMLEN > 0
NUM$ = RIGHT$(NUM$, NUMLEN)
NUMCHECK$ = LEFT$(NUM$, 1)
NUMCHECK = VAL(NUMCHECK$)
ON NUMLEN GOSUB ONES, TENS, HUNDREDS, THOUSANDS,
TENTHOUSANDS, HUNDREDTHOUSA
NUMLEN = NUMLEN - 1
WEND
WORD$ = WORD$ + DECIMAL$
EXIT SUB
HUNDREDTHOUSANDS:
WORD$ = WORD$ + ONEARRAY$(NUMCHECK) + "Hundred "
RETURN
TENTHOUSANDS:
IF NUMCHECK$ = "1" THEN
GOSUB TEENS:
WORD$ = WORD$ + "Thousand "
ELSE
WORD$ = WORD$ + NUMARRAY$(NUMCHECK)
END IF
RETURN
THOUSANDS:
WORD$ = WORD$ + ONEARRAY$(NUMCHECK) + "Thousand "
RETURN
HUNDREDS:
WORD$ = WORD$ + ONEARRAY$(NUMCHECK) + "Hundred "
RETURN
TENS:
IF NUMCHECK$ = "1" THEN
GOSUB TEENS:
WORD$ = WORD$
ELSE
WORD$ = WORD$ + NUMARRAY$(NUMCHECK)
END IF
RETURN
ONES:
WORD$ = WORD$ + ONEARRAY$(NUMCHECK)
RETURN
TEENS:
NUMLEN = NUMLEN = NUMLEN - 1
NUMCHECK$ = RIGHT$(NUM$, 1)
NUMCHECK = VAL(NUMCHECK$)
WORD$ = WORD$ + TEENARRAY$(NUMCHECK)
RETURN
END SUB
=====================================================================
I hope this solves your problem.
Tom
---
þ SLMR 2.1a þ
---
þ SLMR 2.1a þ
--- FidoPCB v1.4 beta
* Origin: ASA CompuHelp "We're A Step Ahead" (614)476-4058 (1:226/600)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET