Code:
CLS
 
PRINT fValue2Words(3321234.01)
 
FUNCTION fValue2Words ( BYVAL Number AS SINGLE ) AS STRING
 
  DIM Cents  AS LOCAL  INTEGER
  DIM I      AS LOCAL  INTEGER
  DIM Nbr    AS LOCAL  STRING * 15
  DIM Poff   AS LOCAL  INTEGER
  DIM Temp   AS LOCAL  STRING
  DIM Thou   AS LOCAL  INTEGER
  DIM V      AS LOCAL  INTEGER
  DIM W(38)  AS LOCAL  STRING
 
  '-----------------------------------------------------------------------------
  Value2Words:
  DATA "ONE "        , "TWO "     , "THREE "   , "FOUR "     : ' numeric values
  DATA "FIVE "       , "SIX "     , "SEVEN "   , "EIGHT "    : '
  DATA "NINE "       , "TEN "     , "ELEVEN "  , "TWELVE "   : '
  DATA "THIRTEEN "   , "FOURTEEN ", "FIFTEEN " , "SIXTEEN "  : '
  DATA "SEVENTEEN "  , "EIGHTEEN ", "NINETEEN ", "TWENTY"    : '
  DATA "THIRTY"      , "FORTY"    , "FIFTY"    , "SIXTY"     : '
  DATA "SEVENTY"     , "EIGHTY"   , "NINETY"   , "HUNDRED "  : '
  DATA "THOUSAND "   , "MILLION " , "BILLION " , "TRILLION " : ' 29, 30, 31, 32
  DATA "DOLLAR "     , "DOLLARS " , "AND "                   : ' 33, 34, 35
  DATA "CENT"        , "CENTS"    , "00 "                    : ' 36, 37, 38
  '-----------------------------------------------------------------------------
  RESTORE Value2Words
  FOR V = 1 TO 38
    READ W(V)
  NEXT
  Cents  = ( 100 * FRAC( Number) )                        ' store the decimals
  IF Number < 1 THEN                                      ' if no whole numbers
    Temp = W(38)                                          '  load up the "00 "
    GOTO AddCents                                         '  jump to finish
  END IF                                                  '
  RSET Nbr = STR$(FIX(Number))                            ' convert value to string
  Thou  = 33                                              ' TRILLION data pos
  '-------------------------------------------------------'
  FOR Poff = 1 TO 13 STEP 3                               ' each 3 digit pos
    DECR Thou                                             '  back off TRILLIONs
    V = VAL(MID$(Nbr,Poff,3))                             '  thousands' values
    IF V = 0 THEN ITERATE                                 '  nada!
    IF V > 99 THEN                                        '  if hundreds pos
      I = ( V  \  100 )                                   '   # of hundreds
      V = ( V MOD 100 )                                   '   remainder 100
      Temp = Temp & W(I) & W(28)                          '   add words
    END IF                                                '
    IF ( V > 19 ) THEN                                    ' tens (21 is lowest)
      I    = ( V  \  10 )                                 '  # of tens
      V    = ( V MOD 10 )                                 '  strip tens
      Temp = Temp & W(I+18)                               '  add words
      IF V > 0 THEN                                       '  hyphen or space
          Temp = Temp & "-"                               '
        ELSE                                              '
          Temp = Temp & " "                               '
      END IF                                              '
    END IF                                                '
    IF V > 0 THEN Temp = Temp & W$(V)                     '  add more words
    IF Poff < 13 THEN Temp = Temp & W$(Thou)              '  thousands/mills/etc
  NEXT                                                    '
  '-------------------------------------------------------'
  AddCents:                                               ' clean up & finish
    IF Number = 1 THEN I = 33 ELSE I = 34                 '  DOLLARS or DOLLAR
    IF Cents  = 1 THEN V = 36 ELSE V = 37                 '  CENTS   or CENT
    Temp = Temp & W(I) & W(35)            _               '  tack on "DOLLARS AND"
                & MID$(STR$(Cents+100),3) & " " _         '  tack on "nn "
                & W(V)                                    '  tack on "CENTS"
  '-------------------------------------------------------'
  FUNCTION = Temp                                         ' RETURN the string
 
END FUNCTION
------------------
C'ya
Don
[email protected]