diff options
author | Michael Muré <batolettre@gmail.com> | 2018-07-19 18:10:45 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2018-07-19 18:10:45 +0200 |
commit | 0a7814f33a44a57924ac4c6dfeca20cf741dc1f3 (patch) | |
tree | 7e0afa88cf16dbaaab14e97dca8a6365a0300b67 /vendor/github.com/dustin/go-humanize/ftoa.go | |
parent | d7313068fbb95829175fe108352b7b1e99e6fe9d (diff) | |
download | git-bug-0a7814f33a44a57924ac4c6dfeca20cf741dc1f3.tar.gz |
humanize time
Diffstat (limited to 'vendor/github.com/dustin/go-humanize/ftoa.go')
-rw-r--r-- | vendor/github.com/dustin/go-humanize/ftoa.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vendor/github.com/dustin/go-humanize/ftoa.go b/vendor/github.com/dustin/go-humanize/ftoa.go new file mode 100644 index 00000000..1c62b640 --- /dev/null +++ b/vendor/github.com/dustin/go-humanize/ftoa.go @@ -0,0 +1,46 @@ +package humanize + +import ( + "strconv" + "strings" +) + +func stripTrailingZeros(s string) string { + offset := len(s) - 1 + for offset > 0 { + if s[offset] == '.' { + offset-- + break + } + if s[offset] != '0' { + break + } + offset-- + } + return s[:offset+1] +} + +func stripTrailingDigits(s string, digits int) string { + if i := strings.Index(s, "."); i >= 0 { + if digits <= 0 { + return s[:i] + } + i++ + if i+digits >= len(s) { + return s + } + return s[:i+digits] + } + return s +} + +// Ftoa converts a float to a string with no trailing zeros. +func Ftoa(num float64) string { + return stripTrailingZeros(strconv.FormatFloat(num, 'f', 6, 64)) +} + +// FtoaWithDigits converts a float to a string but limits the resulting string +// to the given number of decimal places, and no trailing zeros. +func FtoaWithDigits(num float64, digits int) string { + return stripTrailingZeros(stripTrailingDigits(strconv.FormatFloat(num, 'f', 6, 64), digits)) +} |