BigDecimal 认识你荣幸至极
1.创建BigDecimal对象
BigDecimal first= new BigDecimal(xxx); // xxx可以说整型数据,也可以是数字的字符串,但不可以是浮点型 BigDecimal second= new BigDecimal(123); BigDecimal thirst= new BigDecimal("123.321");
2.比较大小-compareTo
BigDecimal first = new BigCecimal ("2.356"); BigDecimal second = new BigCecimal (2); BigDecimal thirst = new BigCecimal ("0.23"); // compareTo返回的值,1:大于;0:等于;-1:小于 second.compareTo(first); // -1 second.compareTo(second); // 0 second.compareTo(thirst); // 1
3.加-add
BigDecimal first = new BigCecimal ("2.356"); BigDecimal second = new BigCecimal (2); BigDecimal sumResult = first.add(second);
4.减-subtract
BigDecimal first = new BigCecimal ("2.356"); BigDecimal second = new BigCecimal (2); BigDecimal subtractResult = first.subtract(second);
5.乘-multiply
BigDecimal first = new BigCecimal ("2.356"); BigDecimal second = new BigCecimal (2); BigDecimal multiplyResult = first.multiply(second);
6.除-divide
BigDecimal first = new BigCecimal ("2.356"); BigDecimal second = new BigCecimal (2); // 除会出现除不尽的情况,所以我们可以提前确定好精度标准和舍入策略 BigDecimal divideResult = first.divide(second,2,BigDecimal.ROUND_HALF_UP); // 方法参数依次是:除数,精度,舍入策略
7.常用的舍入策略,以保留两位小数为例,
(1)向上取整-ROUND_UP
第三位小数只要大于 0, 就进 1
(2)向下取整-ROUND_DOWN
第三位小数直接舍去
(3)常规四舍五入-ROUND_HALF_UP
第三位小数 >= 5,进行四舍五入
(4)常规五舍六入-ROUND_HALF_DOWN
第三位小数 > 5,进行五舍六入
(5)此模式会增加数值大小-ROUND_CEILING
如果为正数等价于:ROUND_UP;为负数等价于:ROUND_DOWN
(6)此模式不会增加数值大小-ROUND_FLOOR
如果为正数等价于:ROUND_DOWN;为负数等价于:ROUND_UP