File tree 2 files changed +13
-5
lines changed
2 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -111,9 +111,9 @@ instance formatInt :: Format Int where
111
111
where
112
112
isSigned = fromMaybe false rec.signed
113
113
padChar = fromMaybe ' ' rec.padChar
114
- isPositive = num > 0
115
- numAbs = if isPositive then num else (-num)
116
- numSgn = if isPositive
114
+ nonNegative = num >= 0
115
+ numAbs = if nonNegative then num else (-num)
116
+ numSgn = if nonNegative
117
117
then (if isSigned then " +" else " " )
118
118
else " -"
119
119
@@ -140,13 +140,13 @@ instance formatNumber :: Format Number where
140
140
in round (f * num') / f
141
141
isSigned = fromMaybe false rec.signed
142
142
padChar = fromMaybe ' ' rec.padChar
143
- isPositive = num > 0.0
143
+ nonNegative = num >= 0.0
144
144
numAbsStr' = show (abs num)
145
145
numAbsStr = case rec.precision of
146
146
Nothing -> numAbsStr'
147
147
Just p -> numAbsStr' <> paddedZeros p
148
148
paddedZeros p = let d = length (dropWhile (_ /= ' .' ) numAbsStr') - 1
149
149
in fromCharArray (replicate (p - d) ' 0' )
150
- numSgn = if isPositive
150
+ numSgn = if nonNegative
151
151
then (if isSigned then " +" else " " )
152
152
else " -"
Original file line number Diff line number Diff line change @@ -111,3 +111,11 @@ main = runTest do
111
111
test " Number: format (width, precision, signed, zeroFill)" do
112
112
equal " +03.14" $ format (width 6 <> precision 2 <> signed <> zeroFill) pi
113
113
equal " +3.142" $ format (width 6 <> precision 3 <> signed <> zeroFill) pi
114
+
115
+ test " Handling of zero" do
116
+ equal " 0" $ format mempty 0
117
+ equal " 0" $ format (precision 0 ) 0.0
118
+ equal " 0.00" $ format (precision 2 ) 0.0
119
+ equal " +0" $ format signed 0
120
+ equal " +0.0" $ format signed 0.0
121
+ equal " +0.00" $ format (signed <> precision 2 ) 0
You can’t perform that action at this time.
0 commit comments