From fe4cda2ff8cbeddcdf08585868005bf973bbca54 Mon Sep 17 00:00:00 2001 From: jiangyong Date: Wed, 2 Sep 2026 15:11:52 +0800 Subject: [PATCH] format --- util.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/util.go b/util.go index fd88b84..290f577 100644 --- a/util.go +++ b/util.go @@ -23,18 +23,23 @@ func FormatMoney(number int64) string { return strconv.FormatInt(int64(num1), 10) } -// FormatMoney 格式化商品价格 func FormatMoneyW(number int64) string { - yuan := float64(number) / 100 + sign := "" + if number < 0 { + sign = "-" + number = -number + } + + yuan := float64(number) / float64(100) // 大于等于1万时,显示为万单位 - if yuan >= 10000 { - wan := yuan / 10000 + if yuan >= float64(10000) { + wan := yuan / float64(10000) // 格式化两位小数,然后去除末尾的0 str := fmt.Sprintf("%.2f", wan) str = strings.TrimRight(str, "0") str = strings.TrimRight(str, ".") - return str + "w" + return sign + str + "w" } // 小于10万时,正常显示 @@ -42,9 +47,9 @@ func FormatMoneyW(number int64) string { fen := number % 100 if fen == 0 { - return strconv.FormatInt(yuanInt, 10) + return sign + strconv.FormatInt(yuanInt, 10) } - return fmt.Sprintf("%d.%02d", yuanInt, fen) + return fmt.Sprintf("%s%d.%02d", sign, yuanInt, fen) } func FormatCNY(amountStr string) string {