cubefs

Форк
0
49 строк · 986.0 Байт
1
package humanize
2

3
import (
4
	"strconv"
5
	"strings"
6
)
7

8
func stripTrailingZeros(s string) string {
9
	if !strings.ContainsRune(s, '.') {
10
		return s
11
	}
12
	offset := len(s) - 1
13
	for offset > 0 {
14
		if s[offset] == '.' {
15
			offset--
16
			break
17
		}
18
		if s[offset] != '0' {
19
			break
20
		}
21
		offset--
22
	}
23
	return s[:offset+1]
24
}
25

26
func stripTrailingDigits(s string, digits int) string {
27
	if i := strings.Index(s, "."); i >= 0 {
28
		if digits <= 0 {
29
			return s[:i]
30
		}
31
		i++
32
		if i+digits >= len(s) {
33
			return s
34
		}
35
		return s[:i+digits]
36
	}
37
	return s
38
}
39

40
// Ftoa converts a float to a string with no trailing zeros.
41
func Ftoa(num float64) string {
42
	return stripTrailingZeros(strconv.FormatFloat(num, 'f', 6, 64))
43
}
44

45
// FtoaWithDigits converts a float to a string but limits the resulting string
46
// to the given number of decimal places, and no trailing zeros.
47
func FtoaWithDigits(num float64, digits int) string {
48
	return stripTrailingZeros(stripTrailingDigits(strconv.FormatFloat(num, 'f', 6, 64), digits))
49
}
50

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

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

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

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