From 11f9ddaeb63510a286348d830bd758e169431ee0 Mon Sep 17 00:00:00 2001 From: Chopper Date: Mon, 10 Jan 2022 09:41:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E4=BC=98=E9=9B=85=E7=9A=84=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E4=BB=B7=E6=A0=BC=E5=8A=A0=E5=87=8F=E6=B3=95=E8=BF=90?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/lili/common/utils/CurrencyUtil.java | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java b/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java index 7e77edcb..74f12d7c 100644 --- a/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java +++ b/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java @@ -2,6 +2,7 @@ package cn.lili.common.utils; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.Arrays; /** * 金额计算工具 @@ -24,27 +25,30 @@ public final class CurrencyUtil { /** * 提供精确的加法运算。 * - * @param v1 被加数 - * @param v2 加数 - * @return 两个参数的和 + * @return 累加之和 */ - public static Double add(double v1, double v2) { - BigDecimal b1 = BigDecimal.valueOf(v1); - BigDecimal b2 = BigDecimal.valueOf(v2); - return b1.add(b2).setScale(2, RoundingMode.HALF_UP).doubleValue(); + public static Double add(double... params) { + BigDecimal result = new BigDecimal("0"); + for (double param : params) { + BigDecimal bigParam = BigDecimal.valueOf(param); + result = result.add(bigParam).setScale(2, RoundingMode.HALF_UP); + } + return result.doubleValue(); } /** - * 提供精确的减法运算。 + * 提供精确的加法运算。 * - * @param v1 被减数 - * @param v2 减数 - * @return 两个参数的差 + * @return 累加之和 */ - public static double sub(double v1, double v2) { - BigDecimal b1 = BigDecimal.valueOf(v1); - BigDecimal b2 = BigDecimal.valueOf(v2); - return b1.subtract(b2).setScale(2, RoundingMode.HALF_UP).doubleValue(); + public static Double sub(double... params) { + BigDecimal result = BigDecimal.valueOf(params[0]); + params = Arrays.stream(params).skip(1).toArray(); + for (double param : params) { + BigDecimal bigParam = BigDecimal.valueOf(param); + result = result.subtract(bigParam).setScale(2, RoundingMode.HALF_UP); + } + return result.doubleValue(); } /**