Math(数学类)

Math:数学类,提供了简单的数学运算

  • 这类 Math包含用于执行基本的数字运算等基本指数、对数、平方根法、三角函数

public class VoidDemo {
    public static void main(String[] args) {
        //求绝对值
        System.out.println(Math.abs(-10));
        
        //求次幂(第一个参数是低,第二个参数是次幂)
        System.out.println(Math.pow(2.0, 3));    //8.0
        
        //向上取整
        System.out.println(Math.ceil(1.1));
        
        //向下取整
        System.out.println(Math.floor(1.1));
        
        //四舍五入
        System.out.println(Math.round(1.5));

    }
}

 

random():获取随机数(0.0-1.0)

public class VoidDemo {
    public static void main(String[] args) {
        //得到0.0到1.0的伪随机小数(不包括1.0)
        //底层根据伪随机算法获取
        System.out.println(Math.random());

        //表示30-40之间的随机数
        System.out.println(30+(int)(Math.random()*10));
    }
}

//-----------------------------------------------------------------------
//应用public class VoidDemo {
    public static void main(String[] args) {
        //验证码
        char[] cs={'中','F','B','Z','L'};
        String s = "";
        
        for(int i=0;i<cs.length;i++){
            s+=cs[(int)(Math.random()*5)];
        }
        System.out.println(s);
    }
}

 

 

BigDecimal类:小数做精确运算——保证传入的参数是字符串

import java.math.BigDecimal;

public class VoidDemo {
    //strictfp --- 用在方法上    在做运算的时候可以增至80位进行运算
    public strictfp static void main(String[] args) {
        double d = 2.1-1.9;
        System.out.println(d);
        
        //精确运算
        //传入的值必须是字符串
        BigDecimal b1 = new BigDecimal("2.1");
        BigDecimal b2 = new BigDecimal("1.9");
        System.out.println(b1.subtract(b2));
    }
}

 

BigInteger超大数

import java.math.BigInteger;

public class VoidDemo {
    public static void main(String[] args) {
        //超大数之间的运算
        BigInteger in1 = new BigInteger("45654654654654654645646545646546546");
        BigInteger in2 = new BigInteger("5466666666666666666666666666666666");
        System.out.println(in1.multiply(in2));
        
    }
}

 

DecimalFormat

import java.text.DecimalFormat;

public class VoidDemo {
    public static void main(String[] args) {
//        System.out.println(1.0/3);
        
        // 保留两位
        // 0 --- 表示占位符,表示占用一位,如果有值,就展示,如果没有值,就用0表示
        DecimalFormat df1 = new DecimalFormat("00.00");
        System.out.println(df1.format(1.0/3));    //00.33
        
        //如果有值就展示,没有值就不展示
        DecimalFormat df2 = new DecimalFormat("##.###");
        System.out.println(df2.format(1.0/3));    //0.333
        
        //科学记数法
        DecimalFormat df3 = new DecimalFormat("0.#E0#");
        System.out.println(df3.format(23*67));
    }
}

 

 

思考:用java程序实现数据相乘的过程

public class VoidDemo {
    public static void main(String[] args) {
        //两个数组表示要做乘积的两个数
        int[] arr1={3,2,1};
        int[] arr2={5,4,3};
        //结果数组
        int[] result=new int[6];
        
        //遍历两个数组相乘
        for(int i=0;i<arr1.length;i++){
            for(int j=0;j<arr2.length;j++){
                result[i+j]+=arr1[i]*arr2[j];
            }
        }
        
        //进位
        for (int i = 0; i < result.length-1;i++) {
            int temp = result[i];
            //保证每一位数都是一位数
            result[i]=temp%10;
            //进位
            result[i+1]+=temp/10;
        }
        
        for (int i:result) {
            System.out.print(i);
        }
    }
}

 

 

 

posted @ 2020-08-18 21:58  minnersun  阅读(877)  评论(0编辑  收藏  举报