首页 > 技术文章 > 三十、Java基础之Math

chushujin 2019-06-23 18:27 原文

一、Math类

public class Test01 {

    public static void main(String[] args){

        //1、Math.random()产生[0,1)之间的小数
        for (int i=0;i<10;i++){
            System.out.println(Math.random());
        }

        //2、
        System.out.println("100的平方根:"+Math.sqrt(100));
        System.out.println("100的立方根:"+Math.cbrt(100));
        System.out.println("3的四次方:"+Math.pow(3,4));

        //3、
        System.out.println(Math.ceil(5.6));//返回大于等于指定数的最小整数
        System.out.println(Math.floor(5.6));//返回小于等于指定数的最大整数

        // 4、常量
        System.out.println(Math.PI);//3.141592653589793
        System.out.println(Math.E);//2.718281828459045

    }
}

二、java.text.DecimalFormat类

public class Test02 {

    public static void main(String[] args){

        DecimalFormat decimalFormat = new DecimalFormat("###,###.000000");
        System.out.println(decimalFormat.format(12345678.123));
    }
}

三、BigInteger/BigDecimal类

public class Test03 {
    public static void main(String[] args){

        BigInteger i1=new BigInteger("1243434543566547");
        BigInteger i2=new BigInteger("45456466577");
        //相加
        System.out.println(i1.add(i2));
        //相乘
        System.out.println(i1.multiply(i2));
        //相减
        System.out.println(i1.subtract(i2));


        BigDecimal b1= new BigDecimal("12121212121212122121.12323");
        BigDecimal b2= new BigDecimal("3432323232.3243435");

        //相除,小数相除时,可能会出现除不尽的情况,会产生异常

        //System.out.println(b1.divide(b2));//java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
        //小数相除时,可以指定小数的处理方式
        BigDecimal b3 = b1.divide(b2, RoundingMode.CEILING);
        System.out.println(b3);
    }
}

 

推荐阅读