8 math类

最终类 提供了基本的数学运算,提供了大量的静态方法,如果想要更加有难度的,查看math包

strictfp:运算提升到80位。

BigDecimal可以用作小数的之间的精确运算,但是参数要是字符串
    public strictfp static void main(String[] args) {
        // TODO Auto-generated method stub
     //天花板函数向上取整
        System.out.println(Math.ceil(2.18));//3
        //地板函数
        System.out.println(Math.floor(2.68));//2
        //四舍五入
        System.out.println(Math.round(4.56));//5
        
        
        //伪随机小数,大于等于0.0小于1.0
        System.out.println(Math.random());
        
        //大部分小数的二进制的补码是无线位数,但是存储的位数是有限的所以不能精确运算
        double i=2.10-1.98;
        System.out.println(i);//0.1200000000000001
        //精确点的运算
        BigDecimal b1=new BigDecimal(2.1);
        BigDecimal b2=new BigDecimal(1.98);
        System.out.println(b1.subtract(b2));//0.120000000000000106581410364015027880668640136718750
        //精确运算,参数是字符串,相当于相应位上相减 ,抛弃了补码运算因为补码肯定无法算的精确的
        BigDecimal b3=new BigDecimal("2.1");
        BigDecimal b4=new BigDecimal("1.98");
        System.out.println(b3.subtract(b4));
        
    }

2.超大数

    BigInteger bi1=new BigInteger("64545645645645656644611561");
        BigInteger bi2=new BigInteger("465156184861516684515845135146848648646");
        //相乘
        System.out.println(bi1.multiply(bi2));

3.保留小数位

  //DecaimalFormat---进行格式化
        //用float会有点小问题
        double x=0.26559;
        //0是占位符,如果这个位上有值就把值展示出来,没值就展示0
        DecimalFormat df=new DecimalFormat("0.0000000");//0.2655900
        System.out.println(df.format(x));
        //#号是另一个占位符如果这个位上有值就把值展示出来,没值就不展示
        DecimalFormat da=new DecimalFormat("#.########");
        System.out.println(da.format(x));
原文地址:https://www.cnblogs.com/xuwangqi/p/11196505.html