         [ dup string>number [ nip ] [ not-an-integer ] if* ] bi@
     ] keep length 10^ / + swap [ neg ] when ;
 
-PRIVATE>
-
 SYNTAX: DECIMAL: scan-token parse-decimal suffix! ;

    [ <reversed> 3 group "," join <reversed> ]
    [ 2 CHAR: 0 pad-head ] bi* "." glue ;

PRIVATE>

: money>string ( number -- string )
    dollars/cents format-money currency-token get prefix ;

: money. ( number -- ) money>string print ;

ERROR: not-an-integer x ;

<PRIVATE

: split-decimal ( str -- neg? dollars cents )
    "." split1 [ "-" ?head swap ] dip ;

SYMBOL: currency-token
CHAR: $ currency-token set-global

: dollars/cents ( dollars -- dollars cents )
    100 * 100 /mod round ;

