diff --git a/pom.xml b/pom.xml index 934e132..e29df33 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.irrigation common-lib - 2.0.5 + 2.0.6 UTF-8 diff --git a/src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java b/src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java index 0676e57..86f7735 100644 --- a/src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java +++ b/src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java @@ -2,7 +2,9 @@ package com.irrigation.icl.utils; import com.irrigation.icl.exception.ContextRuntimeException; +import javax.annotation.Nonnull; import java.math.BigDecimal; +import java.util.Objects; import java.util.Optional; /** @@ -17,11 +19,23 @@ public final class DoubleValueUtils { */ private final static int SCALE = 4; + + /** + * Double 0.0 + */ + public final static Double DOUBLE_ZERO = Double.valueOf(0.0d); + + /** + * double 0.0 + */ + public final static double ZERO = 0.0d; + + private DoubleValueUtils() { } /** - * 计算两个浮点数之和 + * 计算两个浮点数之和s * * @param value 加数 * @param addValue 被加数 @@ -29,8 +43,8 @@ public final class DoubleValueUtils { * @Author: yangLang */ public static double doubleAdd(Double value, Double addValue) { - value = Optional.ofNullable(value).orElse(0.0); - addValue = Optional.ofNullable(addValue).orElse(0.0); + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + addValue = Optional.ofNullable(addValue).orElse(DOUBLE_ZERO); return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString())) .setScale(SCALE, BigDecimal.ROUND_HALF_UP) .doubleValue(); @@ -46,8 +60,8 @@ public final class DoubleValueUtils { * @Author: yangLang */ public static double doubleAdd(Double value, Double addValue, int scale) { - value = Optional.ofNullable(value).orElse(0.0); - addValue = Optional.ofNullable(addValue).orElse(0.0); + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + addValue = Optional.ofNullable(addValue).orElse(DOUBLE_ZERO); return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString())) .setScale(scale, BigDecimal.ROUND_HALF_UP) .doubleValue(); @@ -59,11 +73,11 @@ public final class DoubleValueUtils { * @param value 减数 * @param subValue 被减数 * @return 返回结果四舍五入,保留4位小数 - * @Author: yangLang + * @author: yangLang */ public static double doubleSub(Double value, Double subValue) { - value = Optional.ofNullable(value).orElse(0.0); - subValue = Optional.ofNullable(subValue).orElse(0.0); + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + subValue = Optional.ofNullable(subValue).orElse(DOUBLE_ZERO); return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString())) .setScale(SCALE, BigDecimal.ROUND_HALF_UP) .doubleValue(); @@ -76,11 +90,11 @@ public final class DoubleValueUtils { * @param subValue 被减数 * @param scale 保留位数 * @return 返回结果四舍五入,保留4位小数 - * @Author: yangLang + * @author: yangLang */ public static double doubleSub(Double value, Double subValue, int scale) { - value = Optional.ofNullable(value).orElse(0.0); - subValue = Optional.ofNullable(subValue).orElse(0.0); + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + subValue = Optional.ofNullable(subValue).orElse(DOUBLE_ZERO); return new BigDecimal(value.toString()).subtract(new BigDecimal(subValue.toString())) .setScale(scale, BigDecimal.ROUND_HALF_UP) .doubleValue(); @@ -92,11 +106,11 @@ public final class DoubleValueUtils { * @param value 乘数 * @param mutValue 被乘数 * @return 返回结果四舍五入,保留4位小数 - * @Author: yangLang + * @author: yangLang */ public static double doubleMulti(Double value, Double mutValue) { - value = Optional.ofNullable(value).orElse(0.0); - mutValue = Optional.ofNullable(mutValue).orElse(0.0); + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + mutValue = Optional.ofNullable(mutValue).orElse(DOUBLE_ZERO); return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString())) .setScale(SCALE, BigDecimal.ROUND_HALF_UP) .doubleValue(); @@ -109,11 +123,11 @@ public final class DoubleValueUtils { * @param mutValue 被乘数 * @param scale 保留位数 * @return 返回结果四舍五入,保留4位小数 - * @Author: yangLang + * @author: yangLang */ public static double doubleMulti(Double value, Double mutValue, int scale) { - value = Optional.ofNullable(value).orElse(0.0); - mutValue = Optional.ofNullable(mutValue).orElse(0.0); + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + mutValue = Optional.ofNullable(mutValue).orElse(DOUBLE_ZERO); return new BigDecimal(value.toString()).multiply(new BigDecimal(mutValue.toString())) .setScale(scale, BigDecimal.ROUND_HALF_UP) .doubleValue(); @@ -125,11 +139,11 @@ public final class DoubleValueUtils { * @param value 除数 * @param divValue 被除数 * @return 返回结果四舍五入,保留4位小数 - * @Author: yangLang + * @author: yangLang */ - public static double doubleDiv(Double value, Double divValue) { - value = Optional.ofNullable(value).orElse(0.0); - divValue = getDivValue(divValue); + public static double doubleDiv(Double value, @Nonnull Double divValue) { + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + validateDivValue(divValue); return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString())) .setScale(SCALE, BigDecimal.ROUND_HALF_UP) .doubleValue(); @@ -142,19 +156,26 @@ public final class DoubleValueUtils { * @param divValue 被除数 * @param scale 保留位数 * @return 返回结果四舍五入,保留4位小数 - * @Author: yangLang + * @author: yangLang */ - public static double doubleDiv(Double value, Double divValue, int scale) { - value = Optional.ofNullable(value).orElse(0.0); - divValue = getDivValue(divValue); + public static double doubleDiv(Double value, @Nonnull Double divValue, int scale) { + value = Optional.ofNullable(value).orElse(DOUBLE_ZERO); + validateDivValue(divValue); return new BigDecimal(value.toString()).divide(new BigDecimal(divValue.toString())) .setScale(scale, BigDecimal.ROUND_HALF_UP) .doubleValue(); } - private static Double getDivValue(Double divValue) { - divValue = Optional.ofNullable(divValue).orElse(0.0); - if (ObjectUtils.equals(divValue, 0)) { + /** + * 检查除数是否为0 + * + * @param divValue + * @return + * @author: yangLang + */ + private static Double validateDivValue(@Nonnull Double divValue) { + Objects.requireNonNull(divValue, "被除数不能为空"); + if (ZERO == divValue.doubleValue()) { throw new ContextRuntimeException("被除数不能为0"); } return divValue;