Client Write up and Programming
« Format$ function »

Welcome Guest. Please Login or Register.
Dec 24, 2009, 11:11am




Client Write up and Programming :: QuickBasic Questions/Code :: QuickBasic :: Format$ function
   [Search This Thread][Reply] [Send Topic To Friend] [Print]
 AuthorTopic: Format$ function (Read 436 times)
buffoasys
Guest
 Format$ function
« Thread Started on Dec 22, 2003, 9:59pm »
[Quote]

format a double precision number to a string without
using print using. Works up to 999 million.
EXAMPLE USAGE

dim amount as double
amount=12345.67
prtamt$=format$(amount,"##,###,###.##")
print prtamt$


FUNCTION FORMAT$ (amt AS DOUBLE, msk$)
wholepart& = amt
L% = INSTR(msk$, ".")
IF L% THEN places% = LEN(msk$) - L%
IF L% THEN decimal& = (amt - wholepart&) * 10 ^ places% ELSE decimal& = 0
xx$ = LTRIM$(STR$(wholepart& + decimal& / 10 ^ places%))
wholepart& = FIX(VAL(xx$))
IF wholepart& < 0 THEN multiplier% = -1 ELSE multiplier% = 1
wholepart& = ABS(wholepart&)
IF ABS(wholepart&) > 1000000 THEN
millions& = FIX(wholepart& / 1000000)
wholepart& = wholepart& - FIX(millions& * 1000000)
END IF
IF ABS(wholepart&) > 1000 THEN
thousands& = FIX(wholepart& / 1000)
wholepart& = wholepart& - FIX(thousands& * 1000)
END IF
IF multiplier% = -1 THEN zz$ = "-"
IF millions& THEN
zz$ = zz$ + LTRIM$(STR$(millions&))
IF INSTR(msk$, ",") THEN zz$ = zz$ + ","
END IF
IF thousands& THEN
zz$ = zz$ + LTRIM$(STR$(thousands&))
IF INSTR(msk$, ",") THEN zz$ = zz$ + ","
END IF
zz$ = zz$ + LTRIM$(STR$(wholepart&))
IF decimal& THEN
zz$ = zz$ + "." + LTRIM$(STR$(decimal&))
END IF
Part2:
part2A:
part2B:
Part3:
' B$ = SPACE$(LEN(msk$))
' RSET B$ = zz$
FORMAT$ = RIGHT$(SPACE$(LEN(msk$)) + zz$, LEN(msk$))'B$

END FUNCTION
Link to Post - Back to Top  IP: Logged
   [Search This Thread][Reply] [Send Topic To Friend] [Print]

Google
Webbuffs.proboards.com
Click Here To Make This Board Ad-Free


This Board Hosted For FREE By ProBoards
Get Your Own Free Message Boards & Free Forums!