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(); } }