BigDecimal类

BigDecimal

  • 很多实际应用中需要精确运算,而double是近似值存储,不在符合要求,需要借助BIgDecimal。

  • 例如:

  • public class TestBigDecimal {
       public static void main(String[] args) {
           double d1=1.0;
           double d2=0.9;
           System.out.println(d1-d2);
      }
    }
  • 输出结果:0.09999999999999998

    BigDecimal

  • 位置:java.math包中。

  • 作用:精确计算浮点数。

  • 创建方式:BigDecimal bd=new BigDecimal (“1.0”);

  • 方法

    • BigDecimal add(BigDecimal bd) 加

    •  //加法
             System.out.println("加法");
             BigDecimal s2 = bd1.add(bd2);
             System.out.println(s2);
    • BigDecimal subtract(BigDecimal bd) 减

    •  //减法
             System.out.println("减法");
             BigDecimal s1 = bd1.subtract(bd2);
             System.out.println(s1);
    • BigDecimal multiply(BigDecimal bd) 乘

    •  System.out.println("乘法");
             BigDecimal s3 = bd1.multiply(bd2);
             System.out.println(s3);
    • BigDecimal divide(BigDecimal bd) 除

      •  /*
        除法: divide(BigDecimal bd,int scal, RoundingMode mode)
        参数scal :指定精确到小数点后几位。
        参数mode :
        。指定小数部分的取舍模式,通常采用四舍五入的模式,
        。取值为BigDecimal.ROUND_HALF_UP。
        */
        System.out.println("除法");
               BigDecimal s4 = bd1.divide((bd2),2,BigDecimal.ROUND_HALF_UP);
               System.out.println(s4);
               BigDecimal s5 = new BigDecimal("1.4")
                      .subtract(new BigDecimal("0.5"))
                      .divide(new BigDecimal("0.9"),2,BigDecimal.ROUND_HALF_UP);
               System.out.println(s5);
      •  

上一篇:springboot中mongodb自定义类型转换器


下一篇:(转载)Bigdecimal加减乘除运算保留小数点及比大小