Commit 61c2be75aa2857970b0782ba6628a4ab28cd9b06

Authored by yanglang
1 parent 4b1b2156

feat #增加浮点数的加减乘除的四则运算

src/main/java/com/irrigation/icl/utils/DoubleValueUtils.java 0 → 100644
  1 +package com.irrigation.icl.utils;
  2 +
  3 +import java.math.BigDecimal;
  4 +import java.util.Optional;
  5 +
  6 +/**
  7 + * @description: 浮点数操作工具类
  8 + * @Author: yangLang
  9 + * @CreateDate: 2020/4/29 16:09
  10 + */
  11 +public class DoubleValueUtils {
  12 +
  13 + /**
  14 + * 保留位数
  15 + */
  16 + private final static int SCALE = 4;
  17 +
  18 + private DoubleValueUtils() {
  19 + }
  20 +
  21 + /**
  22 + * 计算两个浮点数之和
  23 + *
  24 + * @param value 加数
  25 + * @param addValue 被加数
  26 + * @return 返回结果四舍五入,保留4为小数
  27 + * @Author: yangLang
  28 + */
  29 + public static Double doubleAddEx(Double value, Double addValue) {
  30 + value = Optional.ofNullable(value).orElse(0.0);
  31 + addValue = Optional.ofNullable(addValue).orElse(0.0);
  32 + return new BigDecimal(value.toString()).add(new BigDecimal(addValue.toString()))
  33 + .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
  34 + .doubleValue();
  35 + }
  36 +
  37 + /**
  38 + * 计算两个浮点数之差
  39 + *
  40 + * @param value 减数
  41 + * @param addValue 被减数
  42 + * @return 返回结果四舍五入,保留4为小数
  43 + * @Author: yangLang
  44 + */
  45 + public static Double doubleSubEx(Double value, Double addValue) {
  46 + value = Optional.ofNullable(value).orElse(0.0);
  47 + addValue = Optional.ofNullable(addValue).orElse(0.0);
  48 + return new BigDecimal(value.toString()).subtract(new BigDecimal(addValue.toString()))
  49 + .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
  50 + .doubleValue();
  51 + }
  52 +
  53 + /**
  54 + * 计算两个浮点数之积
  55 + *
  56 + * @param value 乘数
  57 + * @param addValue 被乘数
  58 + * @return 返回结果四舍五入,保留4为小数
  59 + * @Author: yangLang
  60 + */
  61 + public static Double doubleMultiEx(Double value, Double addValue) {
  62 + value = Optional.ofNullable(value).orElse(0.0);
  63 + addValue = Optional.ofNullable(addValue).orElse(0.0);
  64 + return new BigDecimal(value.toString()).multiply(new BigDecimal(addValue.toString()))
  65 + .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
  66 + .doubleValue();
  67 + }
  68 +
  69 + /**
  70 + * 计算两个浮点数之商
  71 + *
  72 + * @param value 除数
  73 + * @param addValue 被除数
  74 + * @return 返回结果四舍五入,保留4为小数
  75 + * @Author: yangLang
  76 + */
  77 + public static Double doubleDivEx(Double value, Double addValue) {
  78 + value = Optional.ofNullable(value).orElse(0.0);
  79 + addValue = Optional.ofNullable(addValue).orElse(0.0);
  80 + return new BigDecimal(value.toString()).divide(new BigDecimal(addValue.toString()))
  81 + .setScale(SCALE, BigDecimal.ROUND_HALF_UP)
  82 + .doubleValue();
  83 + }
  84 +}