BigDecimal.ROUND_UP 如果 从 double 到 Decimal 有异常, 必须从double到String然后 Decimal 就可以了

 

比如:

//先把double==>string==>BigDecimal;直接 double==>BigDecimal 异常比如9.9
BigDecimal decimalRate = new BigDecimal(String.valueOf(lowestDiscountRate)).setScale(1, BigDecimal.ROUND_UP);
BigDecimal.ROUND_UP 是直接进位 比如2.21==》保留一位 2.3


举个栗子:
  double dd=9.9d;
        BigDecimal f1 = new BigDecimal(dd).setScale(1, BigDecimal.ROUND_UP);
        System.out.println(f1); //10.0
        BigDecimal decimalRate = new BigDecimal(String.valueOf(dd)).setScale(1, BigDecimal.ROUND_UP);

        System.out.println(decimalRate);//9.9

结果:

10.0
9.9

 


posted @ 2020-03-12 11:32  aspirant  阅读(737)  评论(0编辑  收藏  举报