Commit ed5f823daea7218eaf6199411fc01299cda35ca9

Authored by zhangchuanxi
1 parent 89d8aa07

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

@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 6
7 <groupId>com.irrigation</groupId> 7 <groupId>com.irrigation</groupId>
8 <artifactId>common-lib</artifactId> 8 <artifactId>common-lib</artifactId>
9 - <version>2.0.5</version> 9 + <version>2.0.6</version>
10 10
11 <properties> 11 <properties>
12 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 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,7 +2,9 @@ package com.irrigation.icl.utils;
2 2
3 import com.irrigation.icl.exception.ContextRuntimeException; 3 import com.irrigation.icl.exception.ContextRuntimeException;
4 4
  5 +import javax.annotation.Nonnull;
5 import java.math.BigDecimal; 6 import java.math.BigDecimal;
  7 +import java.util.Objects;
6 import java.util.Optional; 8 import java.util.Optional;
7 9
8 /** 10 /**
@@ -17,11 +19,23 @@ public final class DoubleValueUtils { @@ -17,11 +19,23 @@ public final class DoubleValueUtils {
17 */ 19 */
18 private final static int SCALE = 4; 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 private DoubleValueUtils() { 34 private DoubleValueUtils() {
21 } 35 }
22 36
23 /** 37 /**
24 - * 计算两个浮点数之和 38 + * 计算两个浮点数之和s
25 * 39 *
26 * @param value 加数 40 * @param value 加数
27 * @param addValue 被加数 41 * @param addValue 被加数
@@ -29,8 +43,8 @@ public final class DoubleValueUtils { @@ -29,8 +43,8 @@ public final class DoubleValueUtils {
29 * @Author: yangLang 43 * @Author: yangLang
30 */ 44 */
31 public static double doubleAdd(Double value, Double addValue) { 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 return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString())) 48 return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString()))
35 .setScale(SCALE, BigDecimal.ROUND_HALF_UP) 49 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
36 .doubleValue(); 50 .doubleValue();
@@ -46,8 +60,8 @@ public final class DoubleValueUtils { @@ -46,8 +60,8 @@ public final class DoubleValueUtils {
46 * @Author: yangLang 60 * @Author: yangLang
47 */ 61 */
48 public static double doubleAdd(Double value, Double addValue, int scale) { 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 return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString())) 65 return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString()))
52 .setScale(scale, BigDecimal.ROUND_HALF_UP) 66 .setScale(scale, BigDecimal.ROUND_HALF_UP)
53 .doubleValue(); 67 .doubleValue();
@@ -59,11 +73,11 @@ public final class DoubleValueUtils { @@ -59,11 +73,11 @@ public final class DoubleValueUtils {
59 * @param value 减数 73 * @param value 减数
60 * @param subValue 被减数 74 * @param subValue 被减数
61 * @return 返回结果四舍五入,保留4位小数 75 * @return 返回结果四舍五入,保留4位小数
62 - * @Author: yangLang 76 + * @author: yangLang
63 */ 77 */
64 public static double doubleSub(Double value, Double subValue) { 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 return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString())) 81 return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString()))
68 .setScale(SCALE, BigDecimal.ROUND_HALF_UP) 82 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
69 .doubleValue(); 83 .doubleValue();
@@ -76,11 +90,11 @@ public final class DoubleValueUtils { @@ -76,11 +90,11 @@ public final class DoubleValueUtils {
76 * @param subValue 被减数 90 * @param subValue 被减数
77 * @param scale 保留位数 91 * @param scale 保留位数
78 * @return 返回结果四舍五入,保留4位小数 92 * @return 返回结果四舍五入,保留4位小数
79 - * @Author: yangLang 93 + * @author: yangLang
80 */ 94 */
81 public static double doubleSub(Double value, Double subValue, int scale) { 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 return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString())) 98 return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString()))
85 .setScale(scale, BigDecimal.ROUND_HALF_UP) 99 .setScale(scale, BigDecimal.ROUND_HALF_UP)
86 .doubleValue(); 100 .doubleValue();
@@ -92,11 +106,11 @@ public final class DoubleValueUtils { @@ -92,11 +106,11 @@ public final class DoubleValueUtils {
92 * @param value 乘数 106 * @param value 乘数
93 * @param mutValue 被乘数 107 * @param mutValue 被乘数
94 * @return 返回结果四舍五入,保留4位小数 108 * @return 返回结果四舍五入,保留4位小数
95 - * @Author: yangLang 109 + * @author: yangLang
96 */ 110 */
97 public static double doubleMulti(Double value, Double mutValue) { 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 return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString())) 114 return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString()))
101 .setScale(SCALE, BigDecimal.ROUND_HALF_UP) 115 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
102 .doubleValue(); 116 .doubleValue();
@@ -109,11 +123,11 @@ public final class DoubleValueUtils { @@ -109,11 +123,11 @@ public final class DoubleValueUtils {
109 * @param mutValue 被乘数 123 * @param mutValue 被乘数
110 * @param scale 保留位数 124 * @param scale 保留位数
111 * @return 返回结果四舍五入,保留4位小数 125 * @return 返回结果四舍五入,保留4位小数
112 - * @Author: yangLang 126 + * @author: yangLang
113 */ 127 */
114 public static double doubleMulti(Double value, Double mutValue, int scale) { 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 return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString())) 131 return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString()))
118 .setScale(scale, BigDecimal.ROUND_HALF_UP) 132 .setScale(scale, BigDecimal.ROUND_HALF_UP)
119 .doubleValue(); 133 .doubleValue();
@@ -125,11 +139,11 @@ public final class DoubleValueUtils { @@ -125,11 +139,11 @@ public final class DoubleValueUtils {
125 * @param value 除数 139 * @param value 除数
126 * @param divValue 被除数 140 * @param divValue 被除数
127 * @return 返回结果四舍五入,保留4位小数 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 return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString())) 147 return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString()))
134 .setScale(SCALE, BigDecimal.ROUND_HALF_UP) 148 .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
135 .doubleValue(); 149 .doubleValue();
@@ -142,19 +156,26 @@ public final class DoubleValueUtils { @@ -142,19 +156,26 @@ public final class DoubleValueUtils {
142 * @param divValue 被除数 156 * @param divValue 被除数
143 * @param scale 保留位数 157 * @param scale 保留位数
144 * @return 返回结果四舍五入,保留4位小数 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 return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString())) 164 return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString()))
151 .setScale(scale, BigDecimal.ROUND_HALF_UP) 165 .setScale(scale, BigDecimal.ROUND_HALF_UP)
152 .doubleValue(); 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 throw new ContextRuntimeException("被除数不能为0"); 179 throw new ContextRuntimeException("被除数不能为0");
159 } 180 }
160 return divValue; 181 return divValue;