From cd95c1eaa3c261b6fa664f1617ee525ecf2e52ea Mon Sep 17 00:00:00 2001 From: erdanergou Date: Wed, 10 May 2023 11:51:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86double?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9B=B8=E5=8A=A0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DepositoryRecordController.java | 6 +++--- .../controller/PageController.java | 18 ++++++------------ .../impl/DepositoryRecordServiceImpl.java | 6 +++--- .../service/impl/MaterialServiceImpl.java | 2 +- .../utils/ObjectFormatUtil.java | 9 +++++++++ .../depository_manage/OtherTest.java | 5 ++++- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index 47e09c67..b438e634 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -1013,8 +1013,8 @@ public class DepositoryRecordController { sumQuantity += applicationOutRecordMin.getQuantity(); String unit = applicationOutRecordMin.getUnit(); if ("-1".equals(unit)) { - - sumPrice += (inventory.getPrice() * applicationOutRecordMin.getQuantity()); + double amounts = inventory.getPrice() * applicationOutRecordMin.getQuantity(); + sumPrice = ObjectFormatUtil.sum(sumPrice,amounts); } else { // 获取当前对应的拆单记录 Map paramForSplitInfo = new HashMap<>(); @@ -1025,7 +1025,7 @@ public class DepositoryRecordController { int splitInfoScaleQuantity = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1); BigDecimal bg = new BigDecimal(inventory.getPrice() / splitInfoScaleQuantity * applicationOutRecordMin.getQuantity()); double newprice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += newprice; + sumPrice = ObjectFormatUtil.sum(sumPrice,newprice); } } outRecordP.setMcode(mcode.toString()); diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index c86defe1..7ddbc1bd 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -1971,9 +1971,9 @@ public class PageController { String unit = applicationOutRecordMin.getUnit(); if ("-1".equals(unit)) { if (inventoryById.getPrice() != null) { - sumPrice += (inventoryById.getPrice() * applicationOutRecordMin.getQuantity()); - } else { - sumPrice += 0; + double amounts = inventoryById.getPrice() * applicationOutRecordMin.getQuantity(); + sumPrice = ObjectFormatUtil.sum(sumPrice,amounts); + } sumUnit.append(inventoryById.getUnit()).append(","); } else { @@ -1989,9 +1989,7 @@ public class PageController { if (inventoryById.getPrice() != null) { BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * applicationOutRecordMin.getQuantity())); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += v; - } else { - sumPrice += 0; + sumPrice = ObjectFormatUtil.sum(sumPrice,v); } } } @@ -2395,9 +2393,7 @@ public class PageController { if (inventoryById.getPrice() != null) { BigDecimal bd = BigDecimal.valueOf(inventoryById.getPrice() * recordMinP.getQuantity()); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += v; - } else { - sumPrice += 0.0; + sumPrice = ObjectFormatUtil.sum(sumPrice,v); } } else { @@ -2414,9 +2410,7 @@ public class PageController { if (inventoryById.getPrice() != null) { BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * recordMinP.getQuantity())); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += v; - } else { - sumPrice += 0.0; + sumPrice = ObjectFormatUtil.sum(sumPrice,v); } } recordMinPList.add(recordMinP); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 9f087466..a1b763a0 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -631,7 +631,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { BigDecimal bg = new BigDecimal(price_out / 100); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - priceForToday += price_out; + priceForToday = ObjectFormatUtil.sum(priceForToday,price_out); } for (ApplicationOutRecordMin recordMin : applicationOutMinForCompleteForYesterday) { @@ -658,7 +658,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { BigDecimal bg = new BigDecimal(price_out / 100); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - priceForYesterday += price_out; + priceForYesterday = ObjectFormatUtil.sum(price_out,priceForYesterday); } // 设置今天的额度 result.put("price", priceForToday); @@ -5092,7 +5092,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { BigDecimal bg = new BigDecimal(price_out / 100); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - price += price_out; + price = ObjectFormatUtil.sum(price,price_out); } result.put("count", count); result.put("price", price); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java index f69afe3d..78dc3004 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java @@ -861,7 +861,7 @@ public class MaterialServiceImpl implements MaterialService { int scale = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1); BigDecimal bigDecimal = BigDecimal.valueOf(inventory.getPrice() / scale); double split_price = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - amounts += split_price * saveQuantity; + amounts = ObjectFormatUtil.sum(amounts,split_price * saveQuantity); unit = splitInfo.getNewUnit(); } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java index 30e46a50..2767b025 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java @@ -1,5 +1,7 @@ package com.dreamchaser.depository_manage.utils; +import java.math.BigDecimal; + /** * 此工具类封装一些常用类型转换操作 */ @@ -27,4 +29,11 @@ public class ObjectFormatUtil { public static Double toDouble(Object o){return (o == null)?null:Double.parseDouble(o.toString());} + // double类型相加 + public static double sum(double d1,double d2){ + BigDecimal bd1 = new BigDecimal(Double.toString(d1)); + BigDecimal bd2 = new BigDecimal(Double.toString(d2)); + return bd1.add(bd2).doubleValue(); + } + } diff --git a/src/test/java/com/dreamchaser/depository_manage/OtherTest.java b/src/test/java/com/dreamchaser/depository_manage/OtherTest.java index 581478a4..907e9d2d 100644 --- a/src/test/java/com/dreamchaser/depository_manage/OtherTest.java +++ b/src/test/java/com/dreamchaser/depository_manage/OtherTest.java @@ -99,7 +99,10 @@ public class OtherTest { @Test public void someTest(){ - + double a = 1.1; + double b = 2.2; + a += b; + System.out.println(a); } @Test