构造BigDecimal
BigDecimal(int)、BigDecimal(double)、BigDecimal(long)、BigDecimal(String)
创建一个整型/双精度/长整型/字符串数字初始值
一般使用BigDecimal(String)来初始化值,因为BigDecimal(double)无法控制精度
BigDecimal a = new BigDecimal("0.01");
加减乘除
加法add
BigDecimal a = new BigDecimal("0.01");
BigDecimal b = new BigDecimal("0.02");
BigDecimal result = a.add(b);
减法subtract
BigDecimal a = new BigDecimal("0.01");
BigDecimal b = new BigDecimal("0.02");
BigDecimal result = a.subtract(b); //结果为-0.01
乘法multiply
BigDecimal a = new BigDecimal("0.01");
BigDecimal b = new BigDecimal("0.02");
BigDecimal result = a.multiply(b);
除法divide
BigDecimal a = new BigDecimal("0.01");
BigDecimal b = new BigDecimal("0.02");
BigDecimal result = a.divide(b);
当分母为0,报错 java.lang.ArithmeticException: Division by zero
格式化
舍入模式
常用模式四舍五入
BigDecimal a = new BigDecimal("1");
BigDecimal b = new BigDecimal("0.055");
BigDecimal c =a.multiply(b).setScale(2,BigDecimal.ROUND_HALF_UP)
结果为0.06 保留两位采用=四舍五入模式
去除结尾多余的0
通过.stripTrailingZeros()可去除为结尾多余的0
如0.00 -》0,0.660000000000 -》 0.66