关于BigDecimal

2021-06-23  本文已影响0人  任笙_8b8c

使用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

上一篇 下一篇

猜你喜欢

热点阅读