From 61c2be75aa2857970b0782ba6628a4ab28cd9b06 Mon Sep 17 00:00:00 2001 From: yanglang2 Date: Wed, 29 Apr 2020 16:19:34 +0800 Subject: [PATCH] feat #增加浮点数的加减乘除的四则运算 --- src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+), 0 deletions(-) create mode 100644 src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java diff --git a/src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java b/src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java new file mode 100644 index 0000000..dd0357c --- /dev/null +++ b/src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java @@ -0,0 +1,84 @@ +package com.irrigation.icl.utils; + +import java.math.BigDecimal; +import java.util.Optional; + +/** + * @description: 浮点数操作工具类 + * @Author: yangLang + * @CreateDate: 2020/4/29 16:09 + */ +public class DoubleValueUtils { + + /** + * 保留位数 + */ + private final static int SCALE = 4; + + private DoubleValueUtils() { + } + + /** + * 计算两个浮点数之和 + * + * @param value 加数 + * @param addValue 被加数 + * @return 返回结果四舍五入,保留4为小数 + * @Author: yangLang + */ + public static Double doubleAddEx(Double value, Double addValue) { + value = Optional.ofNullable(value).orElse(0.0); + addValue = Optional.ofNullable(addValue).orElse(0.0); + return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString())) + .setScale(SCALE, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + } + + /** + * 计算两个浮点数之差 + * + * @param value 减数 + * @param addValue 被减数 + * @return 返回结果四舍五入,保留4为小数 + * @Author: yangLang + */ + public static Double doubleSubEx(Double value, Double addValue) { + value = Optional.ofNullable(value).orElse(0.0); + addValue = Optional.ofNullable(addValue).orElse(0.0); + return new BigDecimal(value.toString()).subtract(new BigDecimal(addValue.toString())) + .setScale(SCALE, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + } + + /** + * 计算两个浮点数之积 + * + * @param value 乘数 + * @param addValue 被乘数 + * @return 返回结果四舍五入,保留4为小数 + * @Author: yangLang + */ + public static Double doubleMultiEx(Double value, Double addValue) { + value = Optional.ofNullable(value).orElse(0.0); + addValue = Optional.ofNullable(addValue).orElse(0.0); + return new BigDecimal(value.toString()).multiply(new BigDecimal(addValue.toString())) + .setScale(SCALE, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + } + + /** + * 计算两个浮点数之商 + * + * @param value 除数 + * @param addValue 被除数 + * @return 返回结果四舍五入,保留4为小数 + * @Author: yangLang + */ + public static Double doubleDivEx(Double value, Double addValue) { + value = Optional.ofNullable(value).orElse(0.0); + addValue = Optional.ofNullable(addValue).orElse(0.0); + return new BigDecimal(value.toString()).divide(new BigDecimal(addValue.toString())) + .setScale(SCALE, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + } +} -- libgit2 0.21.4