Last change
on this file since 822 was 822, checked in by yakumo.izuru, 22 months ago |
Prefer immortal.run over runit and rc.d, use vendored modules
for convenience.
Signed-off-by: Izuru Yakumo <yakumo.izuru@…>
|
File size:
936 bytes
|
Line | |
---|
1 | package humanize
|
---|
2 |
|
---|
3 | import (
|
---|
4 | "strconv"
|
---|
5 | "strings"
|
---|
6 | )
|
---|
7 |
|
---|
8 | func stripTrailingZeros(s string) string {
|
---|
9 | offset := len(s) - 1
|
---|
10 | for offset > 0 {
|
---|
11 | if s[offset] == '.' {
|
---|
12 | offset--
|
---|
13 | break
|
---|
14 | }
|
---|
15 | if s[offset] != '0' {
|
---|
16 | break
|
---|
17 | }
|
---|
18 | offset--
|
---|
19 | }
|
---|
20 | return s[:offset+1]
|
---|
21 | }
|
---|
22 |
|
---|
23 | func stripTrailingDigits(s string, digits int) string {
|
---|
24 | if i := strings.Index(s, "."); i >= 0 {
|
---|
25 | if digits <= 0 {
|
---|
26 | return s[:i]
|
---|
27 | }
|
---|
28 | i++
|
---|
29 | if i+digits >= len(s) {
|
---|
30 | return s
|
---|
31 | }
|
---|
32 | return s[:i+digits]
|
---|
33 | }
|
---|
34 | return s
|
---|
35 | }
|
---|
36 |
|
---|
37 | // Ftoa converts a float to a string with no trailing zeros.
|
---|
38 | func Ftoa(num float64) string {
|
---|
39 | return stripTrailingZeros(strconv.FormatFloat(num, 'f', 6, 64))
|
---|
40 | }
|
---|
41 |
|
---|
42 | // FtoaWithDigits converts a float to a string but limits the resulting string
|
---|
43 | // to the given number of decimal places, and no trailing zeros.
|
---|
44 | func FtoaWithDigits(num float64, digits int) string {
|
---|
45 | return stripTrailingZeros(stripTrailingDigits(strconv.FormatFloat(num, 'f', 6, 64), digits))
|
---|
46 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.