home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib35b.dsk / DOLLAR.FORMAT.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  34 lines

  1. 10  REM *
  2. 20  REM * DOLLAR.FORMAT
  3. 30  REM * BY ANTONIO DE PASQUALE
  4. 40  REM * COPYRIGHT (C) 1989    
  5. 50  REM * MICROSPARC, INC.
  6. 60  REM * CONCORD, MA 01742
  7. 70  REM *
  8. 80  TEXT : HOME : CLEAR 
  9. 90  PRINT "DOLLAR.FORMAT": PRINT "COPYRIGHT (C) 1989": PRINT "MICROSPARC, INC."
  10. 100  PRINT : PRINT "     DOLLAR FORMAT SAMPLE OUTPUT": PRINT : PRINT "ORIGINAL INPUT";: PRINT  TAB( 22);"FORMATTED OUTPUT": PRINT 
  11. 110  FOR X = 1 TO 7: READ V:N = V: GOSUB 1000: PRINT  TAB( 3);V;: PRINT  TAB( 35 - LEN(N$));N$: NEXT X: PRINT 
  12. 120  FOR X = 1 TO 7: READ V:N = V: GOSUB 1000: PRINT  TAB( 3);V;: PRINT  TAB( 35 - LEN(N$));N$: NEXT X
  13. 130  VTAB 23: END 
  14. 140  DATA  .00785, 1.337, 23.412, 276658, 4355.458, 58927.1855, 277372.913
  15. 150  DATA -.0871,-2.896,-96.3334,-587.7689,-6788.2782,-37889.37,-187124.016
  16. 160  REM 
  17. 170  REM **********************
  18. 180  REM *                    *
  19. 190  REM *   FORMAT ROUTINE   *
  20. 200  REM *    STARTS HERE     *
  21. 210  REM *                    *
  22. 220  REM **********************
  23. 230  REM 
  24. 1000  ON (RDFLAG = 1) GOTO 1010: DIM DN(10): DIM DN$(10):RDFLAG = 1
  25. 1010  IF N >9999999.99  OR N < -9999999.99  THEN N$ = "*********": RETURN 
  26. 1020  FOR INDX = 1 TO 10:DN(INDX) = 0:DN$(INDX) = "": NEXT INDX:S$ =  MID$ ("$(",1,1 +1 *(N <0)):N =  ABS(N)
  27. 1030 N = (100 *( INT((N +.0051) *100)/100)) +.001:N$ = ""
  28. 1040  FOR INDX = 10 TO 1  STEP  -1:N1 =  INT(N/10):N2 =  INT(N1 *10):N3 =  INT(N -N2):DN(INDX) = N3:N = N1: NEXT INDX
  29. 1050  FOR INDX = 1 TO 10:DN$(INDX) =  STR$(DN(INDX)): NEXT INDX: FOR INDX = 1 TO 8: IF DN$(INDX) = "0"  THEN DN$(INDX) = "": NEXT INDX
  30. 1060  IF DN$(2) < >""  THEN DN$(2) = DN$(2) +","
  31. 1070  IF DN$(5) < >""  THEN DN$(5) = DN$(5) +","
  32. 1080 DN$(8) = DN$(8) +".":N$ = S$: IF DN$(8) = "."  THEN DN$(8) = "0."
  33. 1090  FOR INDX = 1 TO 10:N$ = N$ +DN$(INDX): NEXT INDX: IF  LEFT$(N$,2) = "$("  THEN N$ = N$ +")"
  34. 1100  RETURN