ZQN
2024-06-17 b1ff19545212508d3f65741ab889f0b6df82a511
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package com.project.common.utils;
 
import java.math.BigDecimal;
 
public class NumberUtils {
 
 
    /**
     *  除法运算:  o1/o2 保留四小数
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal divToBigDecSca4(Object o1, Object o2) {
        if(o1 == null || o2 == null) {
            return null;
        }
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.divide(b2, 4, BigDecimal.ROUND_HALF_UP);
    }
 
    /**
     * 除法运算:  o1/o2 保留两小数
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal divToBigDecSca2(Object o1, Object o2) {
        if(o1 == null || o2 == null) {
            return null;
        }
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
    }
 
    /**
     * 乘法运算:  o1*o2 保留四小数
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal mulToBigDecSca4(Object o1, Object o2) {
        if(o1 == null || o2 == null) {
            return null;
        }
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.multiply(b2).setScale(4, BigDecimal.ROUND_HALF_UP);
    }
 
    /**
     * 乘法运算:  o1*o2 保留两小数
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal mulToBigDecSca2(Object o1, Object o2) {
        if(o1 == null || o2 == null) {
            return null;
        }
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.multiply(b2).setScale(2, BigDecimal.ROUND_HALF_UP);
    }
 
    /**
     * 减法: o1 - o2
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal subtract(Object o1, Object o2) {
        if(o1 == null || o2 == null) {
            return null;
        }
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.subtract(b2);
    }
 
    /**
     * 加法: o1 + o2
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal add(Object o1, Object o2) {
        if(o1 == null || o2 == null) {
            return null;
        }
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.add(b2);
    }
 
    /**
     *  除法运算:  o1/o2 只保留整数
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal divToBigDecSca(Object o1, Object o2) {
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.divide(b2, 0, BigDecimal.ROUND_DOWN);
    }
 
    /**
     *  乘法法运算:  o1/o2 只保留整数
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal mulToBigDecSca(Object o1, Object o2) {
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.multiply(b2).setScale(0, BigDecimal.ROUND_DOWN);
    }
 
    /**
     *  除法运算:  o1/o2 保留8小数
     * @param o1
     * @param o2
     * @return
     */
    public static BigDecimal divToBigDecSca8(Object o1, Object o2) {
        BigDecimal b1 = new BigDecimal(o1.toString());
        BigDecimal b2 = new BigDecimal(o2.toString());
        return b1.divide(b2, 8, BigDecimal.ROUND_DOWN);
    }
 
}