BigDecimal的概述

  • 由于在运算的时候,float类型和double很容易丢失精度,演示案例。
  • 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
  • 不可变的、任意精度的有符号十进制数。

    构造方法

  • public BigDecimal(String val)

    成员方法

  • public BigDecimal add(BigDecimal augend)

  • public BigDecimal subtract(BigDecimal subtrahend)
  • public BigDecimal multiply(BigDecimal multiplicand)
  • public BigDecimal divide(BigDecimal divisor)

    1. public static void main(String[] args) {
    2. System.out.println(2.0 - 1.1);//0.8999999999999999
    3. BigDecimal bd1 = new BigDecimal(2.0); //这种方式在开发中不推荐,因为不够精确
    4. BigDecimal bd2 = new BigDecimal(1.1);
    5. System.out.println(bd1.subtract(bd2));//0.899999999999999911182158029987476766109466552734375
    6. }

    ```java public static void main(String[] args) {

    BigDecimal bd1 = new BigDecimal(“2.0”); //通过构造中传入字符串的方式,开发时推荐 BigDecimal bd2 = new BigDecimal(“1.1”);

    System.out.println(bd1.subtract(bd2));//0.9

  1. }

```java
    public static void main(String[] args) {

        BigDecimal bd1 = BigDecimal.valueOf(2.0);    //这种方式在开发中也是推荐的
        BigDecimal bd2 = BigDecimal.valueOf(1.1);

        System.out.println(bd1.subtract(bd2));//0.9
    }