FormatInteger

This commit is contained in:
jiangyong 2025-09-06 00:40:46 +08:00
parent 3de0d54d91
commit 0238b0512f
1 changed files with 39 additions and 0 deletions

39
util.go
View File

@ -51,6 +51,45 @@ func FormatBytes(bytes int64) string {
return fmt.Sprintf("%.2f%cB", float64(bytes)/float64(div), "KMGTPE"[exp])
}
func FormatInteger(num int) string {
if num == 0 {
return "0"
}
negative := false
if num < 0 {
negative = true
num = -num
}
str := strconv.Itoa(num)
var result strings.Builder
length := len(str)
remainder := length % 3
if remainder == 0 {
remainder = 3
}
for i, char := range str {
if i == 0 {
result.WriteRune(char)
if remainder == 1 && length > 1 {
result.WriteString(",")
}
continue
}
if (i-remainder+1)%3 == 0 {
result.WriteString(",")
}
result.WriteRune(char)
}
if negative {
return "-" + result.String()
}
return result.String()
}
func If[T any](condition bool, trueVal, falseVal T) T {
if condition {
return trueVal