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