BigDecimal 保留两位小数四舍五入,在项目过程中特别是商城,2C项目涉及到金钱的就会遇到BigDecimal 的使用
BigDecimal 使用
bigDecimal是java常用的用于接收金额类型,支持常见的金额运算,四舍五入是其中一种,bigDecimal提供2种方法用于格式化小数点
setScale(MathContext mc)表示保留X位小数,默认用四舍五入方式
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(int newScale, RoundingMode roundingMode) 第一个参数表示需要保留多少位
第二个参数roundingMode表示要应用的舍入模式。
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如10.45会变成10.4
setScale(1,BigDecimal.ROUND_UP)进位处理,10.35变成10.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,10.35变成10.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,10.35变成10.3,如果是5则向下舍
setScaler(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入
setScaler(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROUND_DOWN作用一样
setScaler(1,BigDecimal.ROUND_HALF_EVEN)向最接近的数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。