From b3b17b231e2f2840332ce6eb96f791865fdec6d5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 16:38:16 +0800
Subject: [PATCH] 代码优化
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DoubleUtil.java | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DoubleUtil.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DoubleUtil.java
new file mode 100644
index 0000000..b40e2dd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DoubleUtil.java
@@ -0,0 +1,103 @@
+package com.dy.common.util;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/8/2 13:58
+ * @Description 绮惧噯鐨刣ouble璁$畻
+ */
+public class DoubleUtil {
+ /** 榛樿闄ゆ硶杩愮畻绮惧害 */
+ private static final int DEF_DIV_SCALE = 10;
+
+ /** 杩欎釜绫讳笉鑳藉疄渚嬪寲 */
+ private DoubleUtil() {
+ }
+
+ /**
+ * 鎻愪緵绮剧‘鐨勫姞娉曡繍绠椼��
+ * @param v1 琚姞鏁�
+ * @param v2 鍔犳暟
+ * @return 涓や釜鍙傛暟鐨勫拰
+ */
+ public static double add(double v1, double v2) {
+ BigDecimal b1 = new BigDecimal(Double.toString(v1));
+ BigDecimal b2 = new BigDecimal(Double.toString(v2));
+ return b1.add(b2).doubleValue();
+ }
+
+ /**
+ * 鎻愪緵绮剧‘鐨勫噺娉曡繍绠椼��
+ * @param v1 琚噺鏁�
+ * @param v2 鍑忔暟
+ * @return 涓や釜鍙傛暟鐨勫樊
+ */
+ public static double sub(double v1, double v2) {
+ BigDecimal b1 = new BigDecimal(Double.toString(v1));
+ BigDecimal b2 = new BigDecimal(Double.toString(v2));
+ return b1.subtract(b2).doubleValue();
+ }
+
+ /**
+ * 鎻愪緵绮剧‘鐨勪箻娉曡繍绠椼��
+ * @param v1 琚箻鏁�
+ * @param v2 涔樻暟
+ * @return 涓や釜鍙傛暟鐨勭Н
+ */
+ public static double mul(double v1, double v2) {
+ BigDecimal b1 = new BigDecimal(Double.toString(v1));
+ BigDecimal b2 = new BigDecimal(Double.toString(v2));
+ return b1.multiply(b2).doubleValue();
+ }
+
+ /**
+ * 鎻愪緵锛堢浉瀵癸級绮剧‘鐨勯櫎娉曡繍绠楋紝褰撳彂鐢熼櫎涓嶅敖鐨勬儏鍐垫椂锛岀簿纭埌
+ * 灏忔暟鐐逛互鍚�10浣嶏紝浠ュ悗鐨勬暟瀛楀洓鑸嶄簲鍏ャ��
+ * @param v1 琚櫎鏁�
+ * @param v2 闄ゆ暟
+ * @return 涓や釜鍙傛暟鐨勫晢
+ */
+ public static double div(double v1, double v2)
+ {
+ return div(v1, v2, DEF_DIV_SCALE);
+ }
+
+ /**
+ * 鎻愪緵锛堢浉瀵癸級绮剧‘鐨勯櫎娉曡繍绠椼�傚綋鍙戠敓闄や笉灏界殑鎯呭喌鏃讹紝鐢眘cale鍙傛暟鎸�
+ * 瀹氱簿搴︼紝浠ュ悗鐨勬暟瀛楀洓鑸嶄簲鍏ャ��
+ * @param v1 琚櫎鏁�
+ * @param v2 闄ゆ暟
+ * @param scale 琛ㄧず琛ㄧず闇�瑕佺簿纭埌灏忔暟鐐逛互鍚庡嚑浣嶃��
+ * @return 涓や釜鍙傛暟鐨勫晢
+ */
+ public static double div(double v1, double v2, int scale) {
+ if (scale < 0) {
+ throw new IllegalArgumentException(
+ "The scale must be a positive integer or zero");
+ }
+ BigDecimal b1 = new BigDecimal(Double.toString(v1));
+ BigDecimal b2 = new BigDecimal(Double.toString(v2));
+ if (b1.compareTo(BigDecimal.ZERO) == 0) {
+ return BigDecimal.ZERO.doubleValue();
+ }
+ return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue();
+ }
+
+ /**
+ * 鎻愪緵绮剧‘鐨勫皬鏁颁綅鍥涜垗浜斿叆澶勭悊銆�
+ * @param v 闇�瑕佸洓鑸嶄簲鍏ョ殑鏁板瓧
+ * @param scale 灏忔暟鐐瑰悗淇濈暀鍑犱綅
+ * @return 鍥涜垗浜斿叆鍚庣殑缁撴灉
+ */
+ public static double round(double v, int scale) {
+ if (scale < 0) {
+ throw new IllegalArgumentException(
+ "The scale must be a positive integer or zero");
+ }
+ BigDecimal b = new BigDecimal(Double.toString(v));
+ BigDecimal one = BigDecimal.ONE;
+ return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue();
+ }
+}
--
Gitblit v1.8.0