home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
OL.LZH
/
PROCS.LZH
/
CURRENCY.ICN
< prev
next >
Wrap
Text File
|
1991-07-13
|
1KB
|
40 lines
############################################################################
#
# Name: currency.icn
#
# Title: Currency formatting procedure
#
# Author: Robert J. Alexander
#
# Date: December 5, 1989
#
############################################################################
#
# currency() -- Formats "amount" in standard American currency format.
# "amount" can be a real, integer, or numeric string. "width" is the
# output field width, in which the amount is right adjusted. The
# returned string will be longer than "width" if necessary to preserve
# significance. "minus" is the character string to be used for
# negative amounts (default "-"), and is placed to the right of the
# amount.
#
############################################################################
procedure currency(amount,width,minus)
local sign,p
/width := 0
/minus := "-"
amount := real(amount) | fail
if amount < 0 then {
sign := minus
amount := -amount
}
else sign := repl(" ",*minus)
amount := string(amount)
amount := if p := find(".",amount) then left(amount,p + 2,"0") else
amount || ".00"
if match("0.",amount) then amount[1:3] := "0."
amount := "$" || amount || sign
return if *amount >= width then amount else right(amount,width)
end