소스 검색

double 除数为0,计算结果为无限规避

lem 4 년 전
부모
커밋
1e1ec481f3
1개의 변경된 파일13개의 추가작업 그리고 1개의 파일을 삭제
  1. 13 1
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtilCalculate.java

+ 13 - 1
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtilCalculate.java

@@ -4,6 +4,7 @@ import com.jeeplus.modules.sg.financial.erpcredit.entity.*;
 import com.jeeplus.modules.sg.financial.settlement.entity.MaintainData;
 
 import java.io.*;
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -754,7 +755,18 @@ public class ExportUtilCalculate {
                     //摊入
 //                    powerEqmMater = powerValueTotal+powerInstallFee;//===所有的设备价值+安装费+材料费
                     if (Double.valueOf(transferOfPower2.getPowerValue())!=0.0){
-                        powerStandInFee=Double.valueOf(transferOfPower2.getPowerValue())/powerInstallFee*erpCredit.getOtherTotalFee();
+                        BigDecimal bigDecimal = new BigDecimal(transferOfPower2.getPowerValue());
+                        BigDecimal bigDecimal1 = BigDecimal.valueOf(powerInstallFee);
+                        BigDecimal bigDecimal2 = new BigDecimal(erpCredit.getOtherTotalFee());
+                        int i = bigDecimal.compareTo(BigDecimal.ZERO);
+                        int i1 = bigDecimal1.compareTo(BigDecimal.ZERO);
+                        if (i1 == 0) {
+                            powerStandInFee = 0.0;
+                        } else {
+                            BigDecimal divide = bigDecimal.divide(bigDecimal1, 2, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal multiply = divide.multiply(bigDecimal2);
+                            powerStandInFee = multiply.doubleValue();
+                        }
                     }else {
                         powerStandInFee =0.0;
                     }