Commit ed5f823daea7218eaf6199411fc01299cda35ca9
1 parent
89d8aa07
chore #升级版本为:2.0.6,并发布到创库。
Showing
2 changed files
with
50 additions
and
29 deletions
pom.xml
| @@ -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; |