From 2f5c408bcdcf0cec9ce2baffc5d690e1ae819ed9 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期三, 26 十月 2022 15:42:38 +0800
Subject: [PATCH] 小数点处理

---
 src/main/java/com/whyc/service/BattGroupDataService.java |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/whyc/service/BattGroupDataService.java b/src/main/java/com/whyc/service/BattGroupDataService.java
index 3128979..e9f8e3c 100644
--- a/src/main/java/com/whyc/service/BattGroupDataService.java
+++ b/src/main/java/com/whyc/service/BattGroupDataService.java
@@ -10,6 +10,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.NumberFormat;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -98,14 +99,16 @@
         List<Float> crList = monList.stream().map(BattgroupData::getCr).map(Float::parseFloat).collect(Collectors.toList());
         List<Float> bsList = monList.stream().map(BattgroupData::getBs).map(Float::parseFloat).collect(Collectors.toList());
 
+        NumberFormat percentInstance = NumberFormat.getPercentInstance();
+        percentInstance.setMinimumFractionDigits(2);
         float stdDevBv = MathUtil.getStandardDeviation(bvList);
         float stdDevBr = MathUtil.getStandardDeviation(brList);
         float stdDevCr = MathUtil.getStandardDeviation(crList);
         float stdDevBs = MathUtil.getStandardDeviation(bsList);
-        map.put("stdDevBv",stdDevBv*10000/100+"%");
-        map.put("stdDevBr",stdDevBr*10000/100+"%");
-        map.put("stdDevCr",stdDevCr*10000/100+"%");
-        map.put("stdDevBs",stdDevBs*10000/100+"%");
+        map.put("stdDevBv",percentInstance.format(stdDevBv));
+        map.put("stdDevBr",percentInstance.format(stdDevBr));
+        map.put("stdDevCr",percentInstance.format(stdDevCr));
+        map.put("stdDevBs",percentInstance.format(stdDevBs));
         return map;
     }
 
@@ -129,11 +132,14 @@
         float sdBr = MathUtil.getStandardDeviation(dataList.stream().map(BattgroupData::getBr).map(Float::parseFloat).collect(Collectors.toList()));
         float sdBv = MathUtil.getStandardDeviation(dataList.stream().map(BattgroupData::getBv).map(Float::parseFloat).collect(Collectors.toList()));
 
-        resBalanceRate.add(sdBaseBr*10000/100+"%");
-        resBalanceRate.add(sdBr*10000/100+"%");
+        NumberFormat percentInstance = NumberFormat.getPercentInstance();
+        percentInstance.setMinimumFractionDigits(2);
 
-        volBalanceRate.add(sdBaseBv*10000/100+"%");
-        volBalanceRate.add(sdBv*10000/100+"%");
+        resBalanceRate.add(percentInstance.format(sdBaseBr));
+        resBalanceRate.add(percentInstance.format(sdBr));
+
+        volBalanceRate.add(percentInstance.format(sdBaseBv));
+        volBalanceRate.add(percentInstance.format(sdBv));
 
         for (int i = 0; i < dataList.size(); i++) {
             BattgroupData data = dataList.get(i);
@@ -154,7 +160,7 @@
                     }
                 }else {
                     float brFloat = BigDecimal.valueOf(br).subtract(BigDecimal.valueOf(baseBr)).divide(BigDecimal.valueOf(baseBr), 4, BigDecimal.ROUND_HALF_UP).floatValue();
-                    resChangeRate.add(brFloat * 10000/100 + "%");
+                    resChangeRate.add(percentInstance.format(brFloat));
                 }
 
                 Float bv =  Float.parseFloat(data.getBv());
@@ -167,16 +173,16 @@
                     }
                 }else {
                     float bvFloat = BigDecimal.valueOf(bv).subtract(BigDecimal.valueOf(baseBv)).divide(BigDecimal.valueOf(baseBv), 4, BigDecimal.ROUND_HALF_UP).floatValue();
-                    volChangeRate.add(bvFloat * 10000/100 + "%");
+                    volChangeRate.add(percentInstance.format(bvFloat));
                 }
             }
         }
         //灏嗗潎涓�鎬у��,涔熻繘琛屽彉鍖栫巼璁$畻
         float brFloat = BigDecimal.valueOf(sdBr).subtract(BigDecimal.valueOf(sdBaseBr)).divide(BigDecimal.valueOf(sdBaseBr),4, BigDecimal.ROUND_HALF_UP).floatValue();
-        resChangeRate.add(brFloat*10000/100+"%");
+        resChangeRate.add(percentInstance.format(brFloat));
 
         float bvFloat = BigDecimal.valueOf(sdBv).subtract(BigDecimal.valueOf(sdBaseBv)).divide(BigDecimal.valueOf(sdBaseBv),4, BigDecimal.ROUND_HALF_UP).floatValue();
-        volChangeRate.add(bvFloat*10000/100+"%");
+        volChangeRate.add(percentInstance.format(bvFloat));
 
         map.put("resChangeRate",resChangeRate);
         map.put("volChangeRate",volChangeRate);

--
Gitblit v1.9.1