diff --git a/pb_data/data.db b/pb_data/data.db index 847f267..a750f8f 100644 Binary files a/pb_data/data.db and b/pb_data/data.db differ diff --git a/pb_data/logs.db b/pb_data/logs.db index 8a5ed9e..598055a 100644 Binary files a/pb_data/logs.db and b/pb_data/logs.db differ diff --git a/utils/card_calculation.go b/utils/card_calculation.go index 0b81612..0cb8bef 100644 --- a/utils/card_calculation.go +++ b/utils/card_calculation.go @@ -170,6 +170,32 @@ func addCommas(num string) string { return sb.String() } +func formatNumberWithCommas(value float64) string { + // Convert the value to a string with 2 decimal places + formatted := fmt.Sprintf("%.2f", value) + + // Split integer and decimal parts + parts := strings.Split(formatted, ".") + integerPart := parts[0] + decimalPart := parts[1] + + // Add commas to the integer part + var result strings.Builder + n := len(integerPart) + for i, c := range integerPart { + if i > 0 && (n-i)%3 == 0 { + result.WriteRune(',') + } + result.WriteRune(c) + } + + // Append decimal part if needed + if decimalPart != "00" { + return result.String() + "." + decimalPart + } + return result.String() +} + func applyConversion(value float64, conversion string, numberFormat string) string { if numberFormat == "T" { value *= 1000000000000 @@ -187,7 +213,7 @@ func applyConversion(value float64, conversion string, numberFormat string) stri if v == float64(int(v)) { // No decimal part return addCommas(strconv.Itoa(int(v))) } - return addCommas(fmt.Sprintf("%.2f", v)) + return formatNumberWithCommas(v) } if v == float64(int(v)) { // No decimal part return fmt.Sprintf("%d%s", int(v), suffix)