From 68821a363af2f671d8b314f276baa3ddec5b2b73 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 17 Jan 2019 15:01:42 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=A0=8D=E4=BB=B7][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E7=A0=8D=E4=BB=B7=E7=AE=97=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/utils/PressUtils.java | 8 +++----- .../utils/press/stateless/StatelessPingReduceRule.java | 4 +++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/utils/PressUtils.java b/mallinkService/src/main/java/com/iformall/utils/PressUtils.java index 8cc19ddb5..45fd75dc7 100755 --- a/mallinkService/src/main/java/com/iformall/utils/PressUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/PressUtils.java @@ -30,7 +30,7 @@ public class PressUtils { BigDecimal lt = BigDecimal.valueOf(left_total* 1.0D / 100); StatelessReduceRule rule = new DefaultStatelessReduceRule(); BigDecimal current = rule.getReduce(tt, lt, limit_num,limit_num - limit_index, scale); - return current.intValue() * 100; + return current.multiply(BigDecimal.valueOf(100)).intValue(); } /** @@ -46,13 +46,11 @@ public class PressUtils { BigDecimal lt = BigDecimal.valueOf(left_total* 1.0D / 100); StatelessReduceRule rule = new StatelessPingReduceRule(); BigDecimal current = rule.getReduce(tt, lt, limit_num, limit_num - limit_index, scale); - return current.intValue() * 100; + return current.multiply(BigDecimal.valueOf(100)).intValue(); } public static void main(String[] args) { - int IValue = randomPressValue(2000, 300, 5, 4); - System.out.println(IValue); - int iValue = stateLessPressValue( 2000, 400, 5, 4); + int iValue = stateLessPressValue( 2000, 2000, 5, 0); System.out.println(iValue); } diff --git a/mallinkService/src/main/java/com/iformall/utils/press/stateless/StatelessPingReduceRule.java b/mallinkService/src/main/java/com/iformall/utils/press/stateless/StatelessPingReduceRule.java index fa943411b..fe0679f33 100644 --- a/mallinkService/src/main/java/com/iformall/utils/press/stateless/StatelessPingReduceRule.java +++ b/mallinkService/src/main/java/com/iformall/utils/press/stateless/StatelessPingReduceRule.java @@ -18,8 +18,10 @@ public class StatelessPingReduceRule implements StatelessReduceRule { if (totalReduceTimes == 1) { return totalReduce; } + // 前1/3的人 + Double thirdDeduceTimesD = Math.ceil(totalReduceTimes * 1.0D/ 3); + int firstN = Math.max(thirdDeduceTimesD.intValue(), 1); - int firstN = Math.max(totalReduceTimes / 3, 1); // 前1/3的人 BigDecimal halfReduce = totalReduce.divide(BigDecimal.valueOf(2), RoundingMode.HALF_EVEN).setScale(scale, RoundingMode.HALF_EVEN); int leftN = totalReduceTimes - firstN; BigDecimal theOtherHalf = totalReduce.subtract(halfReduce);