DoubleValueUtils.java
2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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();
}
}