double类型做乘法的时候保留小数时容易造成第二位小数忽略,用big类型的做乘法会解除这个问题。
BigDecimal prem1 = new BigDecimal("20.0");
BigDecimal prem2 = new BigDecimal("8.00");
System.out.println(prem1.compareTo(prem2));//大于的结果是1,小于是-1,等于是0
System.out.println(prem1.subtract(prem2));//前者减去后者,结果:12.00
BigDecimal yearBig = new BigDecimal("0.12");
DecimalFormat dFormat = new DecimalFormat("#0.00");
double sum= prem1.multiply(yearBig).doubleValue();//multiply是乘法
System.out.println("=="+sum);//==2.4
System.out.println("=="+dFormat.format(sum));//==2.40