类BigDecimal
阅读原文时间:2023年07月13日阅读:1

/*
* float和double类型的数据存储和int不一样
*
* float和double类型容易丢失精度
*
* 因此使用BigDecimal
*
* BigDecimal类描述:不可变的,任意精度的有符号十进制数,可以解决精度丢失问题
* */

/*
* float和double类型的数据存储和int不一样
*
* float和double类型容易丢失精度
*
* 因此使用BigDecimal
*
* BigDecimal类描述:不可变的,任意精度的有符号十进制数,可以解决精度丢失问题
* */

public class IntegerDemo {

public static void main(String\[\] args) {  
    // TODO Auto-generated method stub

    System.out.println(0.09 + 0.01);  
    System.out.println(1.0 - 0.32);  
    System.out.println(1.015 \* 100);  
    System.out.println(1.301 / 100);  
}  

}

/*
* 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);除
*
* public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode);除,参数:商,保留几位小数,如何舍取
* */

import java.math.BigDecimal;

/*
* 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);除
*
* public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode);除,参数:商,保留几位小数,如何舍取
* */

public class IntegerDemo {

public static void main(String\[\] args) {  
    // TODO Auto-generated method stub

    BigDecimal bd1 = new BigDecimal("0.09");  
    BigDecimal bd2 = new BigDecimal("0.01");

    System.out.println("add:" + bd1.add(bd2));  
    System.out.println("subtract:" + bd1.subtract(bd2));  
    System.out.println("multiply:" + bd1.multiply(bd2));  
    System.out.println("divide:" + bd1.divide(bd2));

    System.out.println("divide:" + bd1.divide(bd2, 3, BigDecimal.ROUND\_HALF\_UP));  
}  

}