一,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 (除法涉及商末尾小数点处理,有兴趣再研究)