diff --git a/hledger-lib/Hledger/Read/TimedotReader.hs b/hledger-lib/Hledger/Read/TimedotReader.hs index c8b870ae4..8a8b189f6 100644 --- a/hledger-lib/Hledger/Read/TimedotReader.hs +++ b/hledger-lib/Hledger/Read/TimedotReader.hs @@ -52,6 +52,7 @@ import Text.Megaparsec.Char import Hledger.Data import Hledger.Read.Common hiding (emptyorcommentlinep) import Hledger.Utils +import Data.Decimal (roundTo) --- ** doctest setup -- $setup @@ -228,7 +229,7 @@ numericquantityp = do let q' = case msymbol of Nothing -> q - Just sym -> + Just sym -> roundTo 2 $ case lookup sym timeUnits of Just mult -> q * mult Nothing -> q -- shouldn't happen.. ignore diff --git a/hledger/test/timedot.test b/hledger/test/timedot.test index 1c219a4cc..f57a9e829 100644 --- a/hledger/test/timedot.test +++ b/hledger/test/timedot.test @@ -42,3 +42,18 @@ $ hledger -ftimedot:- reg # 3. Tags are recognised. Account aliases are applied. $ hledger -ftimedot:- reg tag:posting-tag --alias fos:haskell=λ 2023-01-01 different transac.. (λ) 1.00 1.00 + +# 4. Each of these formats is printed as exactly a quarter hour. +< +2023-01-01 +a . +b 0.25 +c 15m + +$ hledger -ftimedot:- print +2023-01-01 * + (a) 0.25 + (b) 0.25 + (c) 0.25 + +>=