关于BigDecimal的使用

BigDecimal类

  • 概述
    表示无限大的小数类型

  • 构造方法

    方法 说明
    igDecimal(double val) 把小数变成BigDecimal对象
    igDecimal(String val) 把字符串变成BigDecimal对象
  • 常用方法

    方法 说明
    BigDecimal add(BigDecimal value) 加法运算
    BigDecimal subtract(BigDecimal value) 减法运算
    BigDecimal multiply(BigDecimal value) 乘法运算
    BigDecimal divide(BigDecimal value) 除法运算
    BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) 除法运算
      			int scale:表示整数        int roundingMode表示舍入方式  如:RoundingMode.HALF_UP表示四舍五入
    
  • 示例代码:

public class Demo{
	public static void main(String[] args){
	 //创建对象
        //基本类型做浮点数运算精度问题
        //小数在底层存储时无法存储一个精确的值
        //比如我们写一个0.09在底层可能存储的是一个无限接近0.09的数值
        System.out.println(10.0 / 3);       //3.3333333333333335
        System.out.println(0.09 + 0.01);   //0.09999999999999999
        //System.out.println(1.2+1.3);

        //表示一个无限大的小数并且没有计算错误
        BigDecimal b1 = new BigDecimal("0.09");
        BigDecimal b2 = new BigDecimal("0.01");

        //加法
        System.out.println(b1.add(b2));
        //减法
        System.out.println(b1.subtract(b2));
        //乘法
        System.out.println(b1.multiply(b2));
        //除法
        System.out.println(b1.divide(b2));

        //--------------------------------------------
        //BigDecimal是精确的数值
        BigDecimal b3 = new BigDecimal("10.0");
        BigDecimal b4 = new BigDecimal("3.0");

        //除法
        //System.out.println(b3.divide(b4));  //ArithmeticException

        //除法运算 保留2位小数 四舍五入
        System.out.println(b3.divide(b4,2, RoundingMode.HALF_UP));
    }
}
发布了1 篇原创文章 · 获赞 0 · 访问量 38

猜你喜欢

转载自blog.csdn.net/qq_40378121/article/details/105169159