source: code/trunk/vendor/github.com/dustin/go-humanize/commaf.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: 745 bytes
RevLine 
[822]1// +build go1.6
2
3package humanize
4
5import (
6 "bytes"
7 "math/big"
8 "strings"
9)
10
11// BigCommaf produces a string form of the given big.Float in base 10
12// with commas after every three orders of magnitude.
13func BigCommaf(v *big.Float) string {
14 buf := &bytes.Buffer{}
15 if v.Sign() < 0 {
16 buf.Write([]byte{'-'})
17 v.Abs(v)
18 }
19
20 comma := []byte{','}
21
22 parts := strings.Split(v.Text('f', -1), ".")
23 pos := 0
24 if len(parts[0])%3 != 0 {
25 pos += len(parts[0]) % 3
26 buf.WriteString(parts[0][:pos])
27 buf.Write(comma)
28 }
29 for ; pos < len(parts[0]); pos += 3 {
30 buf.WriteString(parts[0][pos : pos+3])
31 buf.Write(comma)
32 }
33 buf.Truncate(buf.Len() - 1)
34
35 if len(parts) > 1 {
36 buf.Write([]byte{'.'})
37 buf.WriteString(parts[1])
38 }
39 return buf.String()
40}
Note: See TracBrowser for help on using the repository browser.