Java常用类:BigDecimal
BigDecimal
浮点数的计算是使用近似值,尽量不用浮点数计算
double d1 = 1.0;
double d2 = 0.9;
System.out.println(d1-d2);//0.09999999999999998
BigDecimal用于精确计算浮点数,位于java.math包中
方法
- 创建:new对象,字符串形式输入数字
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
- 加法:add()
BigDecimal r2 = bd1.add(bd2);
- 减法:subtract()
BigDecimal r1 = bd1.subtract(bd2);
- 乘法:mutiply()
BigDecimal r3 = bd1.multiply(bd2);
- 除法:divide()
BigDecimal r4 = new BigDecimal("1.4")
.subtract(new BigDecimal("0.5"))
.divide(new BigDecimal("0.9"));
在除不尽的时候需要对除法进行限制 divide.(BigDecimal bd,int scal,RoundingMode mode)
scal:精确到小数点后位数
RoundingMode mode
:取舍模式,常用BigDecimal.ROUND_HALF_UP:四舍五入
BigDecimal r5 = new BigDecimal("100").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);