cubefs

Форк
0
41 строка · 762.0 Байт
1
//go:build go1.6
2
// +build go1.6
3

4
package humanize
5

6
import (
7
	"bytes"
8
	"math/big"
9
	"strings"
10
)
11

12
// BigCommaf produces a string form of the given big.Float in base 10
13
// with commas after every three orders of magnitude.
14
func BigCommaf(v *big.Float) string {
15
	buf := &bytes.Buffer{}
16
	if v.Sign() < 0 {
17
		buf.Write([]byte{'-'})
18
		v.Abs(v)
19
	}
20

21
	comma := []byte{','}
22

23
	parts := strings.Split(v.Text('f', -1), ".")
24
	pos := 0
25
	if len(parts[0])%3 != 0 {
26
		pos += len(parts[0]) % 3
27
		buf.WriteString(parts[0][:pos])
28
		buf.Write(comma)
29
	}
30
	for ; pos < len(parts[0]); pos += 3 {
31
		buf.WriteString(parts[0][pos : pos+3])
32
		buf.Write(comma)
33
	}
34
	buf.Truncate(buf.Len() - 1)
35

36
	if len(parts) > 1 {
37
		buf.Write([]byte{'.'})
38
		buf.WriteString(parts[1])
39
	}
40
	return buf.String()
41
}
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.