BigDecimal类
1.概述:提供浮点类型数据的精确计算。可变的、任意精度的有符号十进制数(避免损失精度)
对于浮点类型的数据类说,他们存储和整数的存储是不一致的,是按照有效数字位来进行存储的,浮点类型的数据计算的时候
容易损失精度
容易损失精度
2.构造方式:
public BigDecimal(String val)
将 BigDecimal 的字符串表示形式转换为 BigDecimal
3.常用的成员方法;
(1)public BigDecimal add(BigDecimal augend): 加
(2)public BigDecimal subtract(BigDecimal subtrahend): 减
(3)public BigDecimal multiply(BigDecimal multiplicand): 乘法
(4)public BigDecimal divide(BigDecimal divisor): 除
(5)public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
参数1:商, 参数2:保留几位小数, 参数3:舍入的一种模式:ROUND_HALF_UP
(1)public BigDecimal add(BigDecimal augend): 加
(2)public BigDecimal subtract(BigDecimal subtrahend): 减
(3)public BigDecimal multiply(BigDecimal multiplicand): 乘法
(4)public BigDecimal divide(BigDecimal divisor): 除
(5)public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
参数1:商, 参数2:保留几位小数, 参数3:舍入的一种模式:ROUND_HALF_UP
例:
public class BigDecimalDemo {
public static void main(String[] args) {
//public BigDecimal add(BigDecimal augend):加法
BigDecimal bd1 = new BigDecimal("0.01") ;
BigDecimal bd2 = new BigDecimal("0.09") ;
System.out.println("add:"+bd1.add(bd2));
//public BigDecimal subtract(BigDecimal subtrahend):减法
BigDecimal bd3 = new BigDecimal("1.0") ;
BigDecimal bd4 = new BigDecimal("0.32") ;
System.out.println("subtract:"+bd3.subtract(bd4));
// public BigDecimal multiply(BigDecimal multiplicand):乘法
BigDecimal bd5 = new BigDecimal("1.501") ;
BigDecimal bd6 = new BigDecimal("100.0") ;
System.out.println("multiply:"+bd5.multiply(bd6));
//public BigDecimal divide(BigDecimal divisor):除法
BigDecimal bd7 = new BigDecimal("1.301") ;
BigDecimal bd8 = new BigDecimal("100") ;
System.out.println("divide:"+bd7.divide(bd8));
//public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
//参数1:商, 参数2:保留几位小数, 参数3:舍入的一种模式:ROUND_HALF_UP
System.out.println("div:"+bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));
System.out.println("div:"+bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));
}
}