From 1361ea0a2ad73bbf17686bb92122ccc2f4214846 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期二, 28 九月 2021 15:54:54 +0800
Subject: [PATCH] 修复被除数为0报错问题

---
 src/main/java/com/whyc/util/MathUtil.java |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/whyc/util/MathUtil.java b/src/main/java/com/whyc/util/MathUtil.java
index c164cd1..fde69fe 100644
--- a/src/main/java/com/whyc/util/MathUtil.java
+++ b/src/main/java/com/whyc/util/MathUtil.java
@@ -15,25 +15,29 @@
      * */
     public static Object divide(Object num,Object num2,Integer type){
         float res = 0;
-        if(num instanceof Integer) {
-            res = BigDecimal.valueOf((Integer)num).divide(BigDecimal.valueOf((Integer)num2), 2, RoundingMode.HALF_UP).floatValue();
-        }
-        if(num instanceof Float) {
-            res = BigDecimal.valueOf((Float)num).divide(BigDecimal.valueOf((Float)num2), 2, RoundingMode.HALF_UP).floatValue();
-        }
-        if(num instanceof Double) {
-            res = BigDecimal.valueOf((Double)num).divide(BigDecimal.valueOf((Double)num2), 2, RoundingMode.HALF_UP).floatValue();
+        double num2Double=Double.parseDouble(num2.toString());
+        if(num2Double!=0){
+
+            if (num instanceof Integer) {
+                res = BigDecimal.valueOf((Integer) num).divide(BigDecimal.valueOf((Integer) num2), 2, RoundingMode.HALF_UP).floatValue();
+            }
+            if (num instanceof Float) {
+                res = BigDecimal.valueOf((Float) num).divide(BigDecimal.valueOf((Float) num2), 2, RoundingMode.HALF_UP).floatValue();
+            }
+            if (num instanceof Double) {
+                res = BigDecimal.valueOf((Double) num).divide(BigDecimal.valueOf((Double) num2), 2, RoundingMode.HALF_UP).floatValue();
+            }
         }
         //0.05
-        if(type==1){
+        if (type == 1) {
             return res;
         }
         //5
-        else if(type==2){
-            return (int)(res*100);
+        else if (type == 2) {
+            return (int) (res * 100);
         }
         //5%
-        return (int)(res*100)+"%";
+        return (int) (res * 100) + "%";
     }
 
 }

--
Gitblit v1.9.1