File size: 1,728 Bytes
0284885
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
package BigDecimal_package;

import java.math.BigDecimal;

public class BigDecimal_demo1 {
    public static void main(String[] args) {
        /*
        构造方法获取BigDecimal对象
            public BigDecimal (double val)
            public BigDecimal (String val)

        静态方法获取BigDecimal对象
            public static BigDecimal valueOf (double val)
         */

        //1、通过传递double类型的小数来创建对象
        //细节:
        //这种方式有可能是不精确的,所以不建议使用
        BigDecimal bd1 = new BigDecimal(0.01);
        BigDecimal bd2 = new BigDecimal(0.09);

        System.out.println(bd1);
        System.out.println(bd2);

        //2、通过传递字符串表示的小数来创建对象
        BigDecimal bd3 = new BigDecimal("0.01");
        BigDecimal bd4 = new BigDecimal("0.09");
        BigDecimal bd5 = bd3.add(bd4);
        System.out.println(bd3);
        System.out.println(bd4);
        System.out.println(bd5);

        //3、通过静态方法获取对象
        BigDecimal bd6 = BigDecimal.valueOf(10);
        BigDecimal bd7 = BigDecimal.valueOf(10);
        System.out.println(bd6 == bd7);

        //细节:
        //1、如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
        //2、如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
        //3、如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new

        BigDecimal bd8 = BigDecimal.valueOf(10.0);
        BigDecimal bd9 = BigDecimal.valueOf(10.0);
        System.out.println(bd8 == bd9);
    }
}