diff --git a/hledger-lib/Hledger/Data/Journal.hs b/hledger-lib/Hledger/Data/Journal.hs index 732e9034e..4929407bd 100644 --- a/hledger-lib/Hledger/Data/Journal.hs +++ b/hledger-lib/Hledger/Data/Journal.hs @@ -981,7 +981,8 @@ journalApplyCommodityStyles j@Journal{jtxns=ts, jpricedirectives=pds} = fixtransaction t@Transaction{tpostings=ps} = t{tpostings=map fixposting ps} fixposting p = p{pamount=styleMixedAmount styles $ pamount p ,pbalanceassertion=fixbalanceassertion <$> pbalanceassertion p} - fixbalanceassertion ba = ba{baamount=styleAmount styles $ baamount ba} + -- balance assertion amounts are always displayed, eg by print, at full precision, per docs + fixbalanceassertion ba = ba{baamount=setFullPrecision $ styleAmount styles $ baamount ba} fixpricedirective pd@PriceDirective{pdamount=a} = pd{pdamount=styleAmountExceptPrecision styles a} -- | Get the canonical amount styles for this journal, whether (in order of precedence): diff --git a/hledger/test/journal/amounts-and-commodities.test b/hledger/test/journal/amounts-and-commodities.test index 8d84e9ec8..add90b0e3 100644 --- a/hledger/test/journal/amounts-and-commodities.test +++ b/hledger/test/journal/amounts-and-commodities.test @@ -195,3 +195,18 @@ $ hledger -f - print (b) 2.00 $ >= + +# Balance assertion amounts are always displayed at their full precision, +# overriding commodity styles. (#1465) +< +commodity A 1. + +2021-01-01 + (a) 0.001A + (a) 1.122A = 1.123A +$ hledger -f - print +2021-01-01 + (a) 0 + (a) A 1 = A 1.123 + +>=