Browse Source

修改部分double类型相加的问题

lwx_dev
erdanergou 3 years ago
parent
commit
cd95c1eaa3
  1. 6
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  2. 18
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 6
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  4. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  5. 9
      src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java
  6. 5
      src/test/java/com/dreamchaser/depository_manage/OtherTest.java

6
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java

@ -1013,8 +1013,8 @@ public class DepositoryRecordController {
sumQuantity += applicationOutRecordMin.getQuantity(); sumQuantity += applicationOutRecordMin.getQuantity();
String unit = applicationOutRecordMin.getUnit(); String unit = applicationOutRecordMin.getUnit();
if ("-1".equals(unit)) { if ("-1".equals(unit)) {
double amounts = inventory.getPrice() * applicationOutRecordMin.getQuantity();
sumPrice += (inventory.getPrice() * applicationOutRecordMin.getQuantity()); sumPrice = ObjectFormatUtil.sum(sumPrice,amounts);
} else { } else {
// 获取当前对应的拆单记录 // 获取当前对应的拆单记录
Map<String, Object> paramForSplitInfo = new HashMap<>(); Map<String, Object> paramForSplitInfo = new HashMap<>();
@ -1025,7 +1025,7 @@ public class DepositoryRecordController {
int splitInfoScaleQuantity = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1); int splitInfoScaleQuantity = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1);
BigDecimal bg = new BigDecimal(inventory.getPrice() / splitInfoScaleQuantity * applicationOutRecordMin.getQuantity()); BigDecimal bg = new BigDecimal(inventory.getPrice() / splitInfoScaleQuantity * applicationOutRecordMin.getQuantity());
double newprice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double newprice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
sumPrice += newprice; sumPrice = ObjectFormatUtil.sum(sumPrice,newprice);
} }
} }
outRecordP.setMcode(mcode.toString()); outRecordP.setMcode(mcode.toString());

18
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -1971,9 +1971,9 @@ public class PageController {
String unit = applicationOutRecordMin.getUnit(); String unit = applicationOutRecordMin.getUnit();
if ("-1".equals(unit)) { if ("-1".equals(unit)) {
if (inventoryById.getPrice() != null) { if (inventoryById.getPrice() != null) {
sumPrice += (inventoryById.getPrice() * applicationOutRecordMin.getQuantity()); double amounts = inventoryById.getPrice() * applicationOutRecordMin.getQuantity();
} else { sumPrice = ObjectFormatUtil.sum(sumPrice,amounts);
sumPrice += 0;
} }
sumUnit.append(inventoryById.getUnit()).append(","); sumUnit.append(inventoryById.getUnit()).append(",");
} else { } else {
@ -1989,9 +1989,7 @@ public class PageController {
if (inventoryById.getPrice() != null) { if (inventoryById.getPrice() != null) {
BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * applicationOutRecordMin.getQuantity())); BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * applicationOutRecordMin.getQuantity()));
double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
sumPrice += v; sumPrice = ObjectFormatUtil.sum(sumPrice,v);
} else {
sumPrice += 0;
} }
} }
} }
@ -2395,9 +2393,7 @@ public class PageController {
if (inventoryById.getPrice() != null) { if (inventoryById.getPrice() != null) {
BigDecimal bd = BigDecimal.valueOf(inventoryById.getPrice() * recordMinP.getQuantity()); BigDecimal bd = BigDecimal.valueOf(inventoryById.getPrice() * recordMinP.getQuantity());
double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
sumPrice += v; sumPrice = ObjectFormatUtil.sum(sumPrice,v);
} else {
sumPrice += 0.0;
} }
} else { } else {
@ -2414,9 +2410,7 @@ public class PageController {
if (inventoryById.getPrice() != null) { if (inventoryById.getPrice() != null) {
BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * recordMinP.getQuantity())); BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * recordMinP.getQuantity()));
double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
sumPrice += v; sumPrice = ObjectFormatUtil.sum(sumPrice,v);
} else {
sumPrice += 0.0;
} }
} }
recordMinPList.add(recordMinP); recordMinPList.add(recordMinP);

6
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); BigDecimal bg = new BigDecimal(price_out / 100);
price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
priceForToday += price_out; priceForToday = ObjectFormatUtil.sum(priceForToday,price_out);
} }
for (ApplicationOutRecordMin recordMin : applicationOutMinForCompleteForYesterday) { for (ApplicationOutRecordMin recordMin : applicationOutMinForCompleteForYesterday) {
@ -658,7 +658,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
BigDecimal bg = new BigDecimal(price_out / 100); BigDecimal bg = new BigDecimal(price_out / 100);
price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
priceForYesterday += price_out; priceForYesterday = ObjectFormatUtil.sum(price_out,priceForYesterday);
} }
// 设置今天的额度 // 设置今天的额度
result.put("price", priceForToday); result.put("price", priceForToday);
@ -5092,7 +5092,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
BigDecimal bg = new BigDecimal(price_out / 100); BigDecimal bg = new BigDecimal(price_out / 100);
price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 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("count", count);
result.put("price", price); result.put("price", price);

2
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); int scale = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1);
BigDecimal bigDecimal = BigDecimal.valueOf(inventory.getPrice() / scale); BigDecimal bigDecimal = BigDecimal.valueOf(inventory.getPrice() / scale);
double split_price = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 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(); unit = splitInfo.getNewUnit();
} }

9
src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java

@ -1,5 +1,7 @@
package com.dreamchaser.depository_manage.utils; 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());} 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();
}
} }

5
src/test/java/com/dreamchaser/depository_manage/OtherTest.java

@ -99,7 +99,10 @@ public class OtherTest {
@Test @Test
public void someTest(){ public void someTest(){
double a = 1.1;
double b = 2.2;
a += b;
System.out.println(a);
} }
@Test @Test

Loading…
Cancel
Save