Selaa lähdekoodia

处理小数位数因bigdecimal除不尽必须指定位数 改大; 增加日志

王苗苗 5 kuukautta sitten
vanhempi
commit
997494c7bb
1 muutettua tiedostoa jossa 12 lisäystä ja 2 poistoa
  1. 12 2
      src/main/java/com/xlht/xlhtproject/utils/CalculateUtils.java

+ 12 - 2
src/main/java/com/xlht/xlhtproject/utils/CalculateUtils.java

@@ -252,13 +252,16 @@ public class CalculateUtils {
         }
 
         //1)计算挟走量
-        BigDecimal xzl = (((BigDecimal_2.multiply(hycXsyVal).subtract(htfksd)).add(((qycAdVal.add(qycYxyVal)).multiply(xzxs).subtract(htfksd)))).multiply((jzxs.subtract(BigDecimal_1)))).multiply((jsLlVal.multiply(slfpxs))).divide(BigDecimal_1000, NUMBER_SCALE_4, RoundingMode.HALF_UP);
+        BigDecimal xzl = (((BigDecimal_2.multiply(hycXsyVal).subtract(htfksd)).add(((qycAdVal.add(qycYxyVal)).multiply(xzxs).subtract(htfksd)))).multiply((jzxs.subtract(BigDecimal_1)))).multiply((jsLlVal.multiply(slfpxs))).divide(BigDecimal_1000, NUMBER_SCALE_10, RoundingMode.HALF_UP);
+        log.info("1计算的挟走量结果是{}", xzl);
         //2)计算碳源投加总量
-        BigDecimal total = (xzl.multiply(kzxs).subtract((jsLlVal.multiply(slfpxs).multiply(jsCodVal).multiply(zhxs).divide(BigDecimal_1000, NUMBER_SCALE_4, RoundingMode.HALF_UP)))).divide(tydl, NUMBER_SCALE_4, RoundingMode.HALF_UP);
+        BigDecimal total = (xzl.multiply(kzxs).subtract((jsLlVal.multiply(slfpxs).multiply(jsCodVal).multiply(zhxs).divide(BigDecimal_1000, NUMBER_SCALE_10, RoundingMode.HALF_UP)))).divide(tydl, NUMBER_SCALE_10, RoundingMode.HALF_UP);
+        log.info("2计算的碳源投加总量结果是{}", total);
         //2024年09月14日15:33:37 计算出来的结果太大,是几千,把第三步公式也加上
         //计算加药流量
         //2024年10月14日14:42:48  由于单位的换算,从m³/h变成l/h,所以结果再乘以1000
         BigDecimal calculateResult = DecimalUtils.getNLengthHalfUp(total.divide(yymd, NUMBER_SCALE_10, RoundingMode.HALF_UP).divide(BigDecimal_1000, NUMBER_SCALE_10, RoundingMode.HALF_UP).multiply(sxps).multiply(BigDecimal_1000), INT_3);
+        log.info("3计算的计算加药流量是{}", calculateResult);
         //兜底结果
         if(Objects.isNull(calculateResult)){
             calculateResult = BigDecimal.ZERO;
@@ -275,8 +278,15 @@ public class CalculateUtils {
                 calculateResult = maxAddAmount;
             }
         }
+        log.info("4兜底处理完加药流量是{}", calculateResult);
         return calculateResult;
     }
 
 
+    public static void main(String[] args) {
+        BigDecimal bigDecimal = new BigDecimal("10.78");
+        BigDecimal bigDecimal1 = new BigDecimal("0.259");
+        System.out.println(bigDecimal.divide(bigDecimal1, NUMBER_SCALE_10, RoundingMode.HALF_UP));
+    }
+
 }