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
|
Line | |
---|
1 | // +build go1.6
|
---|
2 |
|
---|
3 | package humanize
|
---|
4 |
|
---|
5 | import (
|
---|
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.
|
---|
13 | func 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.