From d09e8f46e3b3d5d1d07d4410b34c8adabd578656 Mon Sep 17 00:00:00 2001 From: hshansha Date: Tue, 15 Jul 2025 16:45:09 +0800 Subject: [PATCH] =?UTF-8?q?BigDecimal=E7=B1=BB=E5=9E=8B=E9=99=A4=E6=B3=95?= =?UTF-8?q?=E8=A7=84=E5=AE=9A4=E4=BD=8D=E5=B0=8F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java index f0fbe61..7c0f743 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.kaohe.service.impl; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -155,9 +156,8 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { BigDecimal optionC = voteEmp.getOptionC().add(oldvoteEmp.getOptionC()); BigDecimal optionD = voteEmp.getOptionD().add(oldvoteEmp.getOptionD()); voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); - BigDecimal avgScore = optionA.multiply(a).add( - optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d))) - ).divide(voteEmp.getVoteNum()); + BigDecimal avgScore = (optionA.multiply(a).add(optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d))) + )).divide(voteEmp.getVoteNum(),4, RoundingMode.HALF_UP); voteEmp.setAvgScore(avgScore);//投票后计算平均分 if (oldvoteEmp.getPercentage() != null) { //计算最后得分 voteEmp.setEndScore(avgScore.multiply(oldvoteEmp.getPercentage())); @@ -169,14 +169,14 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { voteEmp.setVoteScore(sumScore); //修改投票人数 平均分*占比=最后得分 voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); - voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum())); + voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum(),4, RoundingMode.HALF_UP)); voteEmp.setEndScore(voteEmp.getAvgScore().multiply(oldvoteEmp.getPercentage())); } else {//单独评分 不占比 以平均分为最后得分 BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore()); voteEmp.setVoteNum(oldvoteEmp.getVoteNum() .add(num)); voteEmp.setVoteScore(sumScore); - voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum())); + voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum(),4, RoundingMode.HALF_UP)); voteEmp.setEndScore(voteEmp.getAvgScore()); } khVoteEmpMapper.updateKhVoteEmp(voteEmp);