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
|
Rev | Line | |
---|
[822] | 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.