使用double和float计算时会造成精度丢失的问题 要进行计算要用BigDecimal
Bigdecimal a =new Bigdecimal(1);
Bigdecimal b =new Bigdecimal(1);
加法 a.add(b)
减法 a.subtract(b)
乘法 a.multiply(b)
除法 a.divide(b)
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
setScaler(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入
setScaler(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROU
对于a.compareTo(b)方法:
a<b, 返回-1
a=b,返回0
a>b, 返回1
网友评论