Math

一,Math类

1,域

PI和E

public class Demo01 {
    public static void main(String[] args) {
        System.out.println(Math.E);//自然对数2.718281828459045
        System.out.println(Math.PI);//Π3.141592653589793
    }
}

2,数学函数

三角函数,指数函数,取整函数,取最值函数,取平均函数

三角函数:

public class Demo02 {
    public static void main(String[] args) {
        //正弦函数sin(Π/2)
        System.out.println("Π/2正弦值:"+Math.sin(Math.PI/2));//Π/2正弦值:1.0
        //余弦函数cos(Π)
        System.out.println("Π/2余弦值:"+Math.cos(Math.PI));//Π余弦值:-1.0
        //120°的弧度值
        System.out.println("120°的弧度值:"+Math.toRadians(120));//2Π/3    120°的弧度值:2.0943951023931953
        //Π/2的角度
        System.out.println("Π/2的角度:"+Math.toDegrees(Math.PI/2));//Π/2的角度:90.0
    }
}

指数函数:

public class Demo03 {
    public static void main(String[] args) {
        //e的a次方
        System.out.println("e的平方:"+Math.exp(2));//e的平方:7.38905609893065
        //e为底a的对数
        System.out.println("ln2:"+Math.log(2));//ln2:0.6931471805599453
        //10为底a的对数
        System.out.println("10为底2的对数:"+Math.log10(2));//10为底2的对数:0.3010299956639812
        //a的平方根
        System.out.println("4的平方:"+Math.sqrt(4));//4的平方:2.0
        //a的立方根
        System.out.println("9的立方:"+Math.sqrt(9));//9的立方:3.0
        //a的b次方
        System.out.println("2的三次方:"+Math.pow(2,3));//2的三次方:8.0
    }
}

取整函数:

public class Demo04 {
    public static void main(String[] args) {
        //大于某个参数的整数
        System.out.println("大于2.1的整数:"+Math.ceil(2.1));//大于2.1的整数:3.0
        //小于某个参数的整数
        System.out.println("小于2.1的整数:"+Math.floor(2.1));//小于2.1的整数:2.0
        // 接近某个参数的整数
        System.out.println("接近1.1的整数:"+Math.rint(1.1));//接近1.1的整数:1.0
    }
}

最值和绝对值:

public class Demo05 {
    public static void main(String[] args) {
        //最值
        System.out.println("4和6较大者:"+Math.max(4,6));//4和6较大者:6
        System.out.println("4和6较小者:"+Math.min(4,6));//4和6较小者:4
        //绝对值
        System.out.println("-5的绝对值:"+Math.abs(-5));//-5的绝对值:5
    }
}

3,随机数

public class Demo06 {
public static void main(String[] args) {
//默认产生0-1的douoble随机数
System.out.println("默认产生0-1的douoble随机数:"+Math.random());//默认产生0-1的douoble随机数:0.4942204115967299
//产生0-2的随机数
System.out.println("产生0-2的随机数:"+Math.random()*2);//产生0-2的随机数:1.0663961692779989
//产生3-4的随机数
System.out.println("产生3-4的随机数:"+(3+Math.random()));//产生3-4的随机数:3.2547938140289996
//产生5-7的随机数
System.out.println("产生5-7的随机数:"+(5+Math.random()*2));//产生5-7的随机数:6.779036468953744
//产生a-z的随机字符
System.out.println("产生a-z的随机字符:"+(char)('a'+Math.random()*('z'-'a'+1)));//产生a-z的随机字符:m
//产生A-Z的随机字符
System.out.println("产生A-Z的随机字符:"+(char)('A'+Math.random()*('Z'-'A'+1)));//产生A-Z的随机字符:F
}
}

4.大小数运算BigDecimal

加法add

public class Demo07 {
    public static void main(String[] args) {
        double d1=Math.random();
        double d2=Math.random();
        double d3=d1+d2;
        System.out.println(d1);//0.4357745166939949
        System.out.println(d2);//0.17431581845700095
        System.out.println(d3);//0.6100903351509959
        BigDecimal b1=new BigDecimal(d1);
        BigDecimal b2=new BigDecimal(d2);
        System.out.println(b1);        //0.43577451669399491773759791612974368035793304443359375
        System.out.println(b2);        //0.17431581845700094834938909116317518055438995361328125
        System.out.println(b1.add(b2));//0.61009033515099586608698700729291886091232299804687500



    }
}

  double计算数据有丢失,而BigDecimal就没有

减法substract,乘法multiply,除法divide (除法涉及商末尾小数点处理,有兴趣再研究) 

 

posted @ 2018-07-29 19:08  blogcheng  阅读(281)  评论(0编辑  收藏  举报