-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMathTool.java
More file actions
59 lines (47 loc) · 1.94 KB
/
MathTool.java
File metadata and controls
59 lines (47 loc) · 1.94 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
package io.itjun.basic.math;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* 对双精度浮点数四舍五入计算
*/
public class MathTool {
private static final RoundingMode mode = RoundingMode.HALF_EVEN;// 银行家舍入模式
private static final int scale = 2;// 默认保留的小数位数
private MathTool() {
}
public static double add(double v1, double v2) {
BigDecimal d1 = new BigDecimal(Double.toString(v1));
BigDecimal d2 = new BigDecimal(Double.toString(v2));
BigDecimal result = d1.add(d2);
return result.setScale(scale, mode).doubleValue();
}
public static double subtract(double v1, double v2) {
BigDecimal d1 = new BigDecimal(Double.toString(v1));
BigDecimal d2 = new BigDecimal(Double.toString(v2));
BigDecimal result = d1.subtract(d2);
return result.setScale(scale, mode).doubleValue();
}
public static double multiply(double v1, double v2) {
BigDecimal d1 = new BigDecimal(Double.toString(v1));
BigDecimal d2 = new BigDecimal(Double.toString(v2));
BigDecimal result = d1.multiply(d2);
return result.setScale(scale, mode).doubleValue();
}
public static double divide(double v1, double v2) {
BigDecimal d1 = new BigDecimal(Double.toString(v1));
BigDecimal d2 = new BigDecimal(Double.toString(v2));
BigDecimal result = d1.divide(d2, scale, mode);
return result.doubleValue();
}
public static void main(String[] args) {
// System.out.println(0.1 + 0.2);
// System.out.println(MathTool.add(0.1, 0.2));
// System.out.println(MathTool.subtract(37121, 0.475));
System.out.println(37121 * 0.475);
System.out.println(MathTool.multiply(37121, 0.475));
//
// System.out.println(6879 * 0.475);
// System.out.println(MathTool.multiply(6879, 0.475));
// System.out.println(MathTool.divide(1, 3));
}
}