source: code/trunk/vendor/github.com/dustin/go-humanize/ftoa.go@ 822

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
RevLine 
[822]1package humanize
2
3import (
4 "strconv"
5 "strings"
6)
7
8func 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
23func 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.
38func 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.
44func 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.