是什么:(针对浮点类型)
BigDecimal主要是运用在对于超过基本数据类型当中的浮点类型的数据的处理,无论这个小数是多少都能够进行一个处理,而不用
去担心难以存储的一个问题
怎么用?
BigDecimal的构造主要包括以下的几个方法:
1:BigDecimal num(double a)在这里进行输入相应的浮点数
2:BigDecimal num(String a)以字符串的形式进行一个相应的输入
3: BigDecimal valueOf(double a)这个的作用主要是为了能够将原本的浮点数据类型转换成为一个BigDecimal的类型,再进行一个var的实现
Tips:
在这里,为了能够精确的对于小数进行计算,构造方法的选择上,尽量的选择后两种,第一种的构造方式容易引起数据精度丢失
方法:
BigDecimal
加法:public BigDecimal add(BigDecimal b)
减法:public BigDecimal subtract(BigDecimal b)
乘法:public BigDecimal divide(BigDecimal b)
除法:public BigDecimal divide(BigDecimal b)
另外一种除法形式:(推荐)
public BigDecimal divide(另外一个的BigDecimal对象,精确到小数点后几位,再加上舍去模式)
Tips:
对于舍去的模式,主要存在以下的三种形式:
1:RoundingMode.up:向上进行直接的取整
2: RoundingMode.DOWN:向下进行直接的取整
3:RoundingMode.HALF_UP:使用四舍五入进行取整
BigDecimal a=new BigDecimal("0.1"); BigDecimal b=new BigDecimal("0.2"); System.out.println(a.add(b)); //加法运算 System.out.println(a.multiply(b)); //乘法运算 System.out.println(a.subtract(b)); //减法运算 System.out.println(a.divide(b)); //除法运算 BigDecimal c=new BigDecimal("3"); BigDecimal d=new BigDecimal("4"); //向上取整 1.334 System.out.println(d.divide(c, 3, BigDecimal.ROUND_UP)); //向下取整 1.333 System.out.println(d.divide(c, 3, BigDecimal.ROUND_DOWN)); //四舍五入 1.333 System.out.println(d.divide(c, 3, BigDecimal.ROUND_HALF_UP));