package humanize | |
import ( | |
"strconv" | |
"strings" | |
) | |
// Place commas after every three orders of magnitude. | |
func Comma(v int64) string { | |
sign := "" | |
if v < 0 { | |
sign = "-" | |
v = 0 - v | |
} | |
parts := []string{"", "", "", "", "", "", "", "", ""} | |
j := len(parts) - 1 | |
for v > 999 { | |
parts[j] = strconv.FormatInt(v%1000, 10) | |
switch len(parts[j]) { | |
case 2: | |
parts[j] = "0" + parts[j] | |
case 1: | |
parts[j] = "00" + parts[j] | |
} | |
v = v / 1000 | |
j-- | |
} | |
parts[j] = strconv.Itoa(int(v)) | |
return sign + strings.Join(parts[j:len(parts)], ",") | |
} |