BigDecimal类型除法规定4位小数

main 31
hshansha 5 months ago
parent cb706de306
commit d09e8f46e3

@ -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);

Loading…
Cancel
Save