java.math.BigDecimal--用来对16位的有效位进行精确的计算。
实际开发中,会对金额进行合计、拆分,必然要对金额进行加减乘除。而BigDecimal用来对金额的计算有很大好处。
BigDecimal对数字的计算有两个关键参数:
1)scale--确定计算后保留的小数位数;是int类型
2)roundingMode--确定计算后小数的精确度
BigDecimal.ROUND_UP--不舍弃小数点后的,进位处理;全部加1
BigDecimal.ROUND_DOWN-->直接舍弃小数点后的
BigDecimal.ROUND_CEILING--->往正无穷进位,Ceiling后的值 是离 原值最近的,比原值大的。
BigDecimal.ROUND_FLOOR-->>往负无穷走,Celing后的值 是离 原值最近的,比原值小的。
BigDecimal.ROUND_HALF_DOWN-->>五舍六入
BigDecimal.ROUND_HALF_UP--->>四舍五入
BigDecimal.ROUND_HALF_EVEN-->>
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
如果前一位为奇数,则入位,否则舍去。
代码案例
1)BigDecimal.ROUND_UP
BigDecimal big4=bigdecimal.setScale(3,BigDecimal.ROUND_UP);/*不舍弃小数点后的,进位处理;全部加1*/ System.out.println("=======金额bigDecimal="+bigDecimal+";ROUND_UP==big4="+big4+"=========="); /* * =======金额bigDecimal=3.333333;big6=3.334========== * =======金额bigDecimal=3.4444;ROUND_UP==big4=3.445========== * =======金额bigDecimal=3.5555;ROUND_UP==big4=3.556=========
2)BigDecimal.</