diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 66ab8d1eb..89c837000 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -805,10 +805,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { size = integers.size(); priceArrs = new long[size]; priceArrs[0] = price; - double priceD = price; + BigDecimal priceD = new BigDecimal(price); for (int i = 1; i < size; i++) { - priceD = priceD + priceD * integers.get(i) / 10000.0; - priceArrs[i] = new BigDecimal(priceD).setScale(0, RoundingMode.HALF_EVEN).intValue(); + BigDecimal divide = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); + priceD = priceD.add(divide); + priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue(); } }