首先是声明:
听说用float和double类型会影响精度,所以采用以下方式:
BigDecimal a = new BigDecimal("0.123");
BigDecimal b = BigDecimal.ZERO;
然后是基本的加减乘除运算:
BigDecimal a = new BigDecimal("0.123");
BigDecimal b = new BigDecimal("2.233");
BigDecimal c = BigDecimal.ZERO;
//加法
c = a.add(b);
//减法
c = a.subtract(b);
//乘法
c = a.multiply(b);
//除法
c = a.divide(b);
如果要保留N位小数点的话就这样:
BigDecimal a = new BigDecimal("0.123");
BigDecimal b = new BigDecimal("2.233");
//除法(四舍五入,保留2位小数)
c = a.divide(b).setScale(2, BigDecimal.ROUND_HALF_UP);
比较方法:
BigDecimal a = new BigDecimal("0.123");
BigDecimal b = new BigDecimal("2.233");
//大于返回1,等于返回0,小于返回-1
a.compareTo(b);
因为自己老是忘掉,因此记录一下,免得以后又得去百度……