Double d1 = 283262462.161235;
Double d2 = 183299220.660000;
//使用BigDecimal,因为Double是二进制数字,BigDecimal 是十进制,可以避免精度问题
BigDecimal b1= new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
//相减
Double d= b1.subtract(b2).doubleValue();
System.out.println(d);//9.9963241501235E7
//使用DecimalFormat 可以避免数据过大最后产生的E
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(6);//这里是小数位
System.out.println(df.format(d));//99,963,241.501235
BigDecimal的常用方法:
加:add(BigDecima)
减:subtract(BigDecimal)
乘:multiply(BigDecimal)
除:divide(BigDecimal)
乘方:pow(int)
取绝对值:abs()
取反:negate()
对比:compareTo(BigDecimal)
设置小数点精确度:setScale(int)
设置保留小数点精确度并添加保留方式(直接加1或者四舍五入):setScale(int, int)