java之BigDecimal类

 1 public class Demo5_BigDecimal {
 2 
 3     /*
 4      * A: BigDecimal 概述
 5      *    float和double很容易丢失精度,所以为了精确地表示、计算浮点数,Java提供了BigDecimal
 6      *    不可变的、任意精度的有符号十进制数。
 7      * B:构造方法
 8      *       public BigDecimal(String val)
 9      * C:成员方法
10      *    public BigDecimal add(BigDecimal augend)
11      *    public BigDecimal subtract(BigDecimal subtrahend)
12      *    public BigDecimal multiply(BigDecimal multiplicand)
13      *    public BigDecimal divide(BigDecimal divisor)
14      */
15     public static void main(String[] args) {
16         System.out.println(2.0 - 1.1);    //0.8999999999999999  只能无限接近于0.9
17         
18         BigDecimal b11 = new BigDecimal(2.0);
19         BigDecimal b22 = new BigDecimal(1.1);
20         System.out.println(b11.subtract(b22));    //结果为稍微精确的 0.899999999999999911182158029987476766109466552734375
21         
22         BigDecimal b1 = new BigDecimal("2.0");
23         BigDecimal b2 = new BigDecimal("1.1");
24         System.out.println(b1.subtract(b2));    //通过构造传入字符串的参数时,结果为精确的 0.9
25         
26         BigDecimal bd1 = BigDecimal.valueOf(2.0);
27         BigDecimal bd2 = BigDecimal.valueOf(1.1);
28         System.out.println(bd1.subtract(bd2));   //这种方式也可以得到结果为精确的 0.9
29 
30     }
31 
32 }

猜你喜欢

转载自www.cnblogs.com/jiangjunwei/p/9201660.html