File tree Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -90,7 +90,9 @@ format ∷ Formatter → Number → String
9090format (Formatter f) num =
9191 let
9292 absed = Math .abs num
93- tens = if absed > 0.0 then Int .floor $ Math .log absed / Math .ln10 else 0
93+ tens = if absed > 0.0
94+ then max (Int .floor $ Math .log absed / Math .ln10) 0
95+ else 0
9496 in if f.abbreviations
9597 then
9698 let
@@ -118,6 +120,11 @@ format (Formatter f) num =
118120 let
119121 multiplier = Math .pow 10.0 $ Int .toNumber f.after
120122 in Int .round $ leftover * multiplier
123+ roundedWithZeros =
124+ let roundedString = show rounded
125+ roundedLength = Str .length roundedString
126+ zeros = repeat " 0" (f.after - roundedLength)
127+ in zeros <> roundedString
121128 shownNumber =
122129 if f.comma
123130 then
@@ -139,7 +146,7 @@ format (Formatter f) num =
139146 else
140147 " ."
141148 <> (if rounded == 0 then repeat " 0" f.after else " " )
142- <> (if rounded > 0 then show rounded else " " ))
149+ <> (if rounded > 0 then roundedWithZeros else " " ))
143150
144151
145152unformat ∷ Formatter → String → Either String Number
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ numberTest = describe "Data.Formatter.Number" do
2828
2929 forAll show
3030 " format (unformat n) = n"
31- [ " 001.12"
31+ [ " 001.12" , " 001.02 "
3232 ]
3333 (\n → (format fmt1 <$> (unformat fmt1 n)) `shouldEqual` (Right n))
3434
You can’t perform that action at this time.
0 commit comments