From 8670873f1e56630040b5e2cd08fe615182fb1edd Mon Sep 17 00:00:00 2001 From: jiangyong Date: Sun, 7 Jun 2026 20:22:26 +0800 Subject: [PATCH] FormatMoneyW --- util.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/util.go b/util.go index a92d82c..d4f4173 100644 --- a/util.go +++ b/util.go @@ -23,6 +23,30 @@ func FormatMoney(number int64) string { return strconv.FormatInt(int64(num1), 10) } +// FormatMoney 格式化商品价格 +func FormatMoneyW(number int64) string { + yuan := float64(number) / 100 + + // 大于等于10万时,显示为万单位 + if yuan >= 100000 { + wan := yuan / 10000 + // 格式化两位小数,然后去除末尾的0 + str := fmt.Sprintf("%.2f", wan) + str = strings.TrimRight(str, "0") + str = strings.TrimRight(str, ".") + return str + "w" + } + + // 小于10万时,正常显示 + yuanInt := number / 100 + fen := number % 100 + + if fen == 0 { + return strconv.FormatInt(yuanInt, 10) + } + return fmt.Sprintf("%d.%02d", yuanInt, fen) +} + func FormatCNY(amountStr string) string { amount, err := strconv.ParseFloat(amountStr, 64) if err != nil {