We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 0121f03 commit 5889328Copy full SHA for 5889328
myqlib/numbers.go
@@ -79,7 +79,10 @@ func collapse_number(value float64, width int64, precision int64, units UnitsDef
79
// If we have space for some extra precision, use it
80
return fmt.Sprintf(fmt.Sprint(`%.`, left-1, `f%s`), raw, unit)
81
} else {
82
- if factor != 1 && str == fmt.Sprintf("0%s", unit) {
+ if factor != 1 && raw < 1 && left > 0 && fmt.Sprintf(`%.1f`, raw ) != `1.0` {
83
+ // Raw is < 1, therefore str is rounded up. Let's print a decimal instead
84
+ return fmt.Sprintf(fmt.Sprint(`%0.`, precision+left, `f%s`), raw, unit)[1:]
85
+ } else if factor != 1 && str == fmt.Sprintf("0%s", unit) {
86
if left > 0 {
87
// There's still some space left to print something intelligent
88
return fmt.Sprintf(fmt.Sprint(`%.`, precision+1, `f%s`), raw, unit)[1:]
myqlib/numbers_test.go
@@ -24,6 +24,7 @@ func TestOne(t *testing.T) {
24
assert(`one twenty three k`, `123k`, NumberUnits, 123000, 0, 4)
25
26
assert(`point one em`, `.1m`, NumberUnits, 123000, 0, 3)
27
+ assert(`point six em`, `.6m`, NumberUnits, 550000, 0, 3)
28
29
assert(`twelve m`, `12m`, NumberUnits, 12300000, 0, 4)
30
assert(`twelve point three m`, `12.3m`, NumberUnits, 12300000, 0, 5)
@@ -35,7 +36,7 @@ func TestOne(t *testing.T) {
35
36
assert(`one point oh`, `1.0b`, MemoryUnits, 1, 1, 4)
37
38
assert(`five oh oh rounded down`, `.5K`, MemoryUnits, 500, 0, 3)
- assert(`five fifty rounded up`, `1K`, MemoryUnits, 550, 0, 3)
39
+ assert(`five fifty fit`, `.5K`, MemoryUnits, 550, 0, 3)
40
assert(`five fifty bee`, `550b`, MemoryUnits, 550, 0, 4)
41
42
assert(`one kay`, `1K`, MemoryUnits, 1000, 0, 3)
0 commit comments