記得比較的時候要用double型別比較,不要用Double,Double是引用型別用==比較不對
阿新 • • 發佈:2018-12-11
記得比較的時候要用double型別比較,不要用Double,Double是引用型別用==比較不對 :
//查詢未更新的返利額度 Map<返利大區-額度> preRebateMap List<RebateMonthRegionEntity> list = rebateRegionService.selectByRebateDiscountKey(rebateAmountBO.getId()); Map<String, Double> preRebateMap = new HashMap<String, Double>(); for (RebateMonthRegionEntity rebateMonthRegionEntity : list) { preRebateMap.put(rebateMonthRegionEntity.getRegionName(), rebateMonthRegionEntity.getDiscountAmount()); } //只更新返利額度變化的資料 List<RebateMonthRegionEntity> rebateMonthRegionEntityList = rebateAmountBO.getDenomBOList(); int count2 = 0; for (RebateMonthRegionEntity rebateMonthRegionEntity : rebateMonthRegionEntityList) { rebateMonthRegionEntity.setUpdateUser(securityUser.getUsername()); rebateMonthRegionEntity.setUpdateTime(new Date()); //前臺傳來的返利額度值和資料庫中額度進行對比的不一致,進行更新。 //注意:Double是引用型別用==比較不對 所以:Double.parseDouble(map.get(key).toString) 轉成 double 比較 if (Double.parseDouble(preRebateMap.get(rebateMonthRegionEntity.getRegionName()).toString()) != Double.parseDouble(rebateMonthRegionEntity.getDiscountAmount().toString())) { logger.info("更新人:" + securityUser.getUsername() + " 更新前返利大區:【" + rebateMonthRegionEntity.getRegionName() + "】 " + "更新前返利額度:【" + preRebateMap.get(rebateMonthRegionEntity.getRegionName()) + "】"+ "更新後返利額度:【" + rebateMonthRegionEntity.getDiscountAmount() + "】"); count2 = rebateRegionService.updateByPrimaryKeySelective(rebateMonthRegionEntity); } }