1. 程式人生 > >String轉BigDecimal,BigDecimal常用操作,以及避免踩坑

String轉BigDecimal,BigDecimal常用操作,以及避免踩坑

String轉BigDecimal

String a = "50.00";  //字串型別,必須是數字,否則會報錯, java.lang.NumberFormatException 異常
BigDecimal b =new BigDecimal(a);

BigDecimal加法運算

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());
BigDecimal yq=new BigDecimal(bookInfo.getYq());
BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());
totalPrice =publishPrice.add(planeTax).add(yq);

BigDecimal減法運算

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());
BigDecimal yq=new BigDecimal(bookInfo.getYq());
BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());
totalPrice =publishPrice.subtract(planeTax).subtract(yq);

BigDecimal乘法運算

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());
BigDecimal yq=new BigDecimal(bookInfo.getYq());
BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());
totalPrice =publishPrice.multiply(planeTax).multiply(yq);

BigDecimal避免踩坑

 

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());//string資料轉換BigDecimal
  BigDecimal yq=new BigDecimal(bookInfo.getYq());//string資料轉換BigDecimal
  BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());//string資料轉換BigDecimal

//進行相加再相乘操作時注意不要直接用符號+、-、*等,後面是四捨五入的格式
  totalPrice =(publishPrice.add(planeTax).add(yq)).multiply( new BigDecimal(model.getBookInfoList().size()))

  .setScale(2,     BigDecimal.ROUND_HALF_UP); 
  totalPrice = price.subtract(couponMoney);