Java Number&Math类
Java Number&Math类
一般地,当需要使用数字的时候,我们通常使用内置数据类型,如byte、short、int、long、float、double(char、String、boolean除外(0八进制,0x十六进制,f,d))。
然而,在实际开发过程中,我们经常遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java语言为每一个内置数据类型提供了对应的包装类。
所有的包装类(int、long、byte、short、float、double)都是抽象类Number的子类。
这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number类属于Java.lang包。
下面是一个使用integer对象的实例:
1 public class Test{ 2 public static void main(String[] args){ 3 int x=10; 4 x+=5; 5 System.out.println(x); 6 } 7 }
当x被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行jia运算,所以要对x进行拆箱。
Java Math类
Java的Math包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math的方法都被定义为static形式,通过Math类可以在主函数中直接调用。
1 public class MathTest { 2 public static void main(String[]args){ 3 System.out.println("90度的正弦值:"+Math.sin(Math.PI/2));//Math.PI代表180度??? 4 System.out.println("0度的余弦值:"+Math.cos(0)); 5 System.out.println("60度的正切值:"+Math.tan(Math.PI/3)); 6 System.out.println("1的反正切值:"+Math.atan(1)); 7 System.out.println("Π/2的角度值:"+Math.toDegrees(Math.PI/2));//toDegrees求角度值??? 8 System.out.println(Math.PI); 9 } 10 }
Number&Math类方法
下面的表中列出的是Number&Math类常用的一些方法:
Math的floor,round和ceil方法实例比较
1 public class MathTestSecond { 2 public static void main(String[] args) { 3 double[] nums={1.4,1.5,1.6,-1.4,-1.5,-1.6}; 4 for(int num=0;num<nums.length;num++){ 5 testNum(nums[num]); 6 } 7 } 8 private static void testNum(double num){ 9 System.out.println("Math.floor("+num+")="+Math.floor(num)); 10 System.out.println("Math.round("+num+")="+Math.round(num)); 11 System.out.println("Math.ceil("+num+")="+Math.ceil(num)); 12 13 } 14 }
或者
1 public class MathTestSecond { 2 public static void main(String[] args) { 3 double[] nums={1.4,1.5,1.6,-1.4,-1.5,-1.6}; 4 for(double num:nums){ 5 testNum(num); 6 } 7 } 8 private static void testNum(double num){ 9 System.out.println("Math.floor("+num+")="+Math.floor(num)); 10 System.out.println("Math.round("+num+")="+Math.round(num)); 11 System.out.println("Math.ceil("+num+")="+Math.ceil(num)); 12 13 } 14 }
什么他妈的叫他妈的惊喜!