Added showAmount' that shows only the number part of an amount

This commit is contained in:
tim 2008-11-23 21:26:38 +00:00
parent 770c2956a5
commit 6fdaf2a248

View File

@ -96,17 +96,23 @@ convertAmountTo c2 (Amount c1 q p) = Amount c2 (q * conversionRate c1 c2) Nothin
-- | Get the string representation of an amount, based on its commodity's -- | Get the string representation of an amount, based on its commodity's
-- display settings. -- display settings.
showAmount :: Amount -> String showAmount :: Amount -> String
showAmount (Amount (Commodity {symbol=sym,side=side,spaced=spaced,comma=comma,precision=p}) q pri) showAmount a@(Amount (Commodity {symbol=sym,side=side,spaced=spaced}) q pri)
| sym=="AUTO" = "" -- can display one of these in an error message | sym=="AUTO" = "" -- can display one of these in an error message
| side==L = printf "%s%s%s%s" sym space quantity price | side==L = printf "%s%s%s%s" sym space quantity price
| side==R = printf "%s%s%s%s" quantity space sym price | side==R = printf "%s%s%s%s" quantity space sym price
where where
space = if spaced then " " else "" space = if spaced then " " else ""
quantity = commad $ printf ("%."++show p++"f") q quantity = showAmount' a
commad = if comma then punctuatethousands else id
price = case pri of (Just pamt) -> " @ " ++ showMixedAmount pamt price = case pri of (Just pamt) -> " @ " ++ showMixedAmount pamt
Nothing -> "" Nothing -> ""
-- | Get the string representation (of the number part of) of an amount
showAmount' :: Amount -> String
showAmount' (Amount (Commodity {comma=comma,precision=p}) q _) = quantity
where
quantity = commad $ printf ("%."++show p++"f") q
commad = if comma then punctuatethousands else id
-- | Add thousands-separating commas to a decimal number string -- | Add thousands-separating commas to a decimal number string
punctuatethousands :: String -> String punctuatethousands :: String -> String
punctuatethousands s = punctuatethousands s =