Commit ed5f823daea7218eaf6199411fc01299cda35ca9

Authored by zhangchuanxi
1 parent 89d8aa07

chore #升级版本为:2.0.6,并发布到创库。

... ... @@ -6,7 +6,7 @@
6 6  
7 7 <groupId>com.irrigation</groupId>
8 8 <artifactId>common-lib</artifactId>
9   - <version>2.0.5</version>
  9 + <version>2.0.6</version>
10 10  
11 11 <properties>
12 12 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
... ...
src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java
... ... @@ -2,7 +2,9 @@ package com.irrigation.icl.utils;
2 2  
3 3 import com.irrigation.icl.exception.ContextRuntimeException;
4 4  
  5 +import javax.annotation.Nonnull;
5 6 import java.math.BigDecimal;
  7 +import java.util.Objects;
6 8 import java.util.Optional;
7 9  
8 10 /**
... ... @@ -17,11 +19,23 @@ public final class DoubleValueUtils {
17 19 */
18 20 private final static int SCALE = 4;
19 21  
  22 +
  23 + /**
  24 + * Double 0.0
  25 + */
  26 + public final static Double DOUBLE_ZERO = Double.valueOf(0.0d);
  27 +
  28 + /**
  29 + * double 0.0
  30 + */
  31 + public final static double ZERO = 0.0d;
  32 +
  33 +
20 34 private DoubleValueUtils() {
21 35 }
22 36  
23 37 /**
24   - * 计算两个浮点数之和
  38 + * 计算两个浮点数之和s
25 39 *
26 40 * @param value 加数
27 41 * @param addValue 被加数
... ... @@ -29,8 +43,8 @@ public final class DoubleValueUtils {
29 43 * @Author: yangLang
30 44 */
31 45 public static double doubleAdd(Double value, Double addValue) {
32   - value = Optional.ofNullable(value).orElse(0.0);
33   - addValue = Optional.ofNullable(addValue).orElse(0.0);
  46 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  47 + addValue = Optional.ofNullable(addValue).orElse(DOUBLE_ZERO);
34 48 return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString()))
35 49 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
36 50 .doubleValue();
... ... @@ -46,8 +60,8 @@ public final class DoubleValueUtils {
46 60 * @Author: yangLang
47 61 */
48 62 public static double doubleAdd(Double value, Double addValue, int scale) {
49   - value = Optional.ofNullable(value).orElse(0.0);
50   - addValue = Optional.ofNullable(addValue).orElse(0.0);
  63 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  64 + addValue = Optional.ofNullable(addValue).orElse(DOUBLE_ZERO);
51 65 return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString()))
52 66 .setScale(scale, BigDecimal.ROUND_HALF_UP)
53 67 .doubleValue();
... ... @@ -59,11 +73,11 @@ public final class DoubleValueUtils {
59 73 * @param value 减数
60 74 * @param subValue 被减数
61 75 * @return 返回结果四舍五入,保留4位小数
62   - * @Author: yangLang
  76 + * @author: yangLang
63 77 */
64 78 public static double doubleSub(Double value, Double subValue) {
65   - value = Optional.ofNullable(value).orElse(0.0);
66   - subValue = Optional.ofNullable(subValue).orElse(0.0);
  79 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  80 + subValue = Optional.ofNullable(subValue).orElse(DOUBLE_ZERO);
67 81 return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString()))
68 82 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
69 83 .doubleValue();
... ... @@ -76,11 +90,11 @@ public final class DoubleValueUtils {
76 90 * @param subValue 被减数
77 91 * @param scale 保留位数
78 92 * @return 返回结果四舍五入,保留4位小数
79   - * @Author: yangLang
  93 + * @author: yangLang
80 94 */
81 95 public static double doubleSub(Double value, Double subValue, int scale) {
82   - value = Optional.ofNullable(value).orElse(0.0);
83   - subValue = Optional.ofNullable(subValue).orElse(0.0);
  96 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  97 + subValue = Optional.ofNullable(subValue).orElse(DOUBLE_ZERO);
84 98 return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString()))
85 99 .setScale(scale, BigDecimal.ROUND_HALF_UP)
86 100 .doubleValue();
... ... @@ -92,11 +106,11 @@ public final class DoubleValueUtils {
92 106 * @param value 乘数
93 107 * @param mutValue 被乘数
94 108 * @return 返回结果四舍五入,保留4位小数
95   - * @Author: yangLang
  109 + * @author: yangLang
96 110 */
97 111 public static double doubleMulti(Double value, Double mutValue) {
98   - value = Optional.ofNullable(value).orElse(0.0);
99   - mutValue = Optional.ofNullable(mutValue).orElse(0.0);
  112 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  113 + mutValue = Optional.ofNullable(mutValue).orElse(DOUBLE_ZERO);
100 114 return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString()))
101 115 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
102 116 .doubleValue();
... ... @@ -109,11 +123,11 @@ public final class DoubleValueUtils {
109 123 * @param mutValue 被乘数
110 124 * @param scale 保留位数
111 125 * @return 返回结果四舍五入,保留4位小数
112   - * @Author: yangLang
  126 + * @author: yangLang
113 127 */
114 128 public static double doubleMulti(Double value, Double mutValue, int scale) {
115   - value = Optional.ofNullable(value).orElse(0.0);
116   - mutValue = Optional.ofNullable(mutValue).orElse(0.0);
  129 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  130 + mutValue = Optional.ofNullable(mutValue).orElse(DOUBLE_ZERO);
117 131 return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString()))
118 132 .setScale(scale, BigDecimal.ROUND_HALF_UP)
119 133 .doubleValue();
... ... @@ -125,11 +139,11 @@ public final class DoubleValueUtils {
125 139 * @param value 除数
126 140 * @param divValue 被除数
127 141 * @return 返回结果四舍五入,保留4位小数
128   - * @Author: yangLang
  142 + * @author: yangLang
129 143 */
130   - public static double doubleDiv(Double value, Double divValue) {
131   - value = Optional.ofNullable(value).orElse(0.0);
132   - divValue = getDivValue(divValue);
  144 + public static double doubleDiv(Double value, @Nonnull Double divValue) {
  145 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  146 + validateDivValue(divValue);
133 147 return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString()))
134 148 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
135 149 .doubleValue();
... ... @@ -142,19 +156,26 @@ public final class DoubleValueUtils {
142 156 * @param divValue 被除数
143 157 * @param scale 保留位数
144 158 * @return 返回结果四舍五入,保留4位小数
145   - * @Author: yangLang
  159 + * @author: yangLang
146 160 */
147   - public static double doubleDiv(Double value, Double divValue, int scale) {
148   - value = Optional.ofNullable(value).orElse(0.0);
149   - divValue = getDivValue(divValue);
  161 + public static double doubleDiv(Double value, @Nonnull Double divValue, int scale) {
  162 + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO);
  163 + validateDivValue(divValue);
150 164 return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString()))
151 165 .setScale(scale, BigDecimal.ROUND_HALF_UP)
152 166 .doubleValue();
153 167 }
154 168  
155   - private static Double getDivValue(Double divValue) {
156   - divValue = Optional.ofNullable(divValue).orElse(0.0);
157   - if (ObjectUtils.equals(divValue, 0)) {
  169 + /**
  170 + * 检查除数是否为0
  171 + *
  172 + * @param divValue
  173 + * @return
  174 + * @author: yangLang
  175 + */
  176 + private static Double validateDivValue(@Nonnull Double divValue) {
  177 + Objects.requireNonNull(divValue, "被除数不能为空");
  178 + if (ZERO == divValue.doubleValue()) {
158 179 throw new ContextRuntimeException("被除数不能为0");
159 180 }
160 181 return divValue;
... ...