Commit 811d96ab8de00627f01011e6605df89c8838d181

Authored by dongqin
1 parent 7f7d069f03

修复精度丢失

Showing 1 changed file with 8 additions and 6 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEvaluationCriterionServiceImpl.java View file @ 811d96a
... ... @@ -494,22 +494,24 @@
494 494 val += model.getProjectVal();
495 495 }
496 496 }
497   - int developmentQuotient = 0;
  497 + BigDecimal developmentQuotient;
498 498 if (val > 0) {
499   - int mentalAge = new BigDecimal(val.toString()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP).intValue();
500   - developmentQuotient = new BigDecimal(mentalAge).divide(new BigDecimal(checkMonth), 2, BigDecimal.ROUND_HALF_UP).intValue();
501   - developmentQuotient *= 100;
  499 + double mentalAge = new BigDecimal(val.toString()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
  500 + BigDecimal multiply = new BigDecimal(mentalAge).divide(new BigDecimal(checkMonth), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
  501 + developmentQuotient = new BigDecimal(multiply.toString());
  502 + } else {
  503 + developmentQuotient = BigDecimal.ZERO;
502 504 }
503 505  
504 506 // 发育商、智能、等级评价
505 507 BabyEvaluationCriterionModel criterionModel = mongoTemplate.findOne(Query.query(Criteria.where("type").is(2).
506   - and("minBorder").lte(developmentQuotient).and("maxBorder").gte(developmentQuotient)), BabyEvaluationCriterionModel.class);
  508 + and("minBorder").lte(developmentQuotient.intValue()).and("maxBorder").gte(developmentQuotient.intValue())), BabyEvaluationCriterionModel.class);
507 509 String aptitudeName = null,levelName = null;
508 510 if (criterionModel != null) {
509 511 aptitudeName = criterionModel.getAptitudeName();
510 512 levelName = criterionModel.getLevelName();
511 513 }
512   - paramModel.setDevelopmentQuotient(developmentQuotient);
  514 + paramModel.setDevelopmentQuotient(developmentQuotient.intValue());
513 515 paramModel.setAptitudeName(aptitudeName);
514 516 paramModel.setLevelName(levelName);
515 517 return paramModel;