File tree 2 files changed +10
-3
lines changed
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
90
90
format (Formatter f) num =
91
91
let
92
92
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
94
96
in if f.abbreviations
95
97
then
96
98
let
@@ -118,6 +120,11 @@ format (Formatter f) num =
118
120
let
119
121
multiplier = Math .pow 10.0 $ Int .toNumber f.after
120
122
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
121
128
shownNumber =
122
129
if f.comma
123
130
then
@@ -139,7 +146,7 @@ format (Formatter f) num =
139
146
else
140
147
" ."
141
148
<> (if rounded == 0 then repeat " 0" f.after else " " )
142
- <> (if rounded > 0 then show rounded else " " ))
149
+ <> (if rounded > 0 then roundedWithZeros else " " ))
143
150
144
151
145
152
unformat ∷ 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
28
28
29
29
forAll show
30
30
" format (unformat n) = n"
31
- [ " 001.12"
31
+ [ " 001.12" , " 001.02 "
32
32
]
33
33
(\n → (format fmt1 <$> (unformat fmt1 n)) `shouldEqual` (Right n))
34
34
You can’t perform that action at this time.
0 commit comments