一、Number & Math 类
(一)、Number类
使用Java在开发过程中常会用到对象,故Java为每一种内置数据类型提供的对应的包装类。所有这些包装类都是抽象类Number的子类,而Number类属于java.lang包。
内置数据类型 | 对应的包装类 |
---|---|
int | Integer |
short | Short |
long | Long |
byte | Byte |
double | Double |
float | Float |
这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。
package day5;
public class NumberMath {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer data = 10;//声明一个Integer对象
System.out.println(data+5);//拆箱过程,将对象拆成内置类型
}
}
(二)、Math类
Java中Math类包含了数学的基本运算,三角函数、指数函数、对数等运算方法,这些方法都为static形式,可通过Math类直接调用。例子如下。
package day5;
public class NumberMath {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("PI="+Math.PI);
System.out.println("cos(π/4)="+Math.cos(Math.PI/4));//三角函数
System.out.println("log10(100)="+Math.log10(100));//对数函数
System.out.println("2^3="+Math.pow(2, 3));//指数函数
}
}
输出信息如下。
PI=3.141592653589793
cos(π/4)=0.7071067811865476
log10(100)=2.0
2^3=8.0
(三)、Number & Math 类方法
Number类方法如下:
- xxxValue():将Number对象转换成对应xxx数据类型并返回。如下面例子。
Integer idata = 10;//创建一个Integer对象
Float fdata = idata.floatValue();//调用Number方法获取它的浮点型数值,fdata为10.0
short sdata = fdata.shortValue();//调用Number方法获取它的短整型型数值,sdata为10
- compareTo():比较相同类型的Number对象和参数的大小,若Number对象的值大于参数则返回1,相等则返回0,小于则返回-1。如下面例子。
Integer idata = 10;
idata.compareTo(1);//返回1
idata.compareTo(10);//返回0
idata.compareTo(20);//返回-1
- equals():判断Number对象和参数是否相同。相同则返回true,否则返回false。
- valueOf():用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型。
- toString():返回以一个字符串表示的 Number 对象值。
- parseInt():将字符串参数作为有符号的十进制整数进行解析。如下面例子。
int decimal = Integer.parseInt("614");//默认基值为10,即该字符串数字为十进制数,并输出该十进制数转换为整型的数字
System.out.println(decimal);
int octal = Integer.parseInt("10", 8);//设置基值为8,即该字符串数字为八进制数,并输出该八进制数转换为整型的数字
System.out.println(octal);
/*输出信息为
614
8
*/
Math类方法如下:
- abs():返回参数的绝对值。
- ceil():返回大于等于(>=)给定参数的的最小整数,类型为double。(向上取整)
- floor():返回小于等于(<=)给定参数的最大整数 ,类型为double。(向下取整)
- rint():返回与参数最接近的整数。类型为double。如果参数为浮点型(float/double),且为中位值,则返回最接近参数的偶数(even)。如参数为1.5则返回2.0,参数为2.5则返回2.0。(找最接近的数)
- round():它表示四舍五入,算法为Math.floor(x+0.5) ,即将原来的数字加上0.5后再向下取整。返回数值类型为long。(四舍五入)
下面以ceil()、floor()、rint()和round()作比较。
//ceil方法 返回>=参数的最小double型整数(向上取整)
System.out.println(Math.ceil(1.4));//2>1.4
System.out.println(Math.ceil(1.5));//2>1.5
System.out.println(Math.ceil(-1.4));//-1.0>-1.4
System.out.println(Math.ceil(-1.5));//-1.0>-1.5
//floor方法 返回<=参数的最大double型整数(向下取整)
System.out.println(Math.floor(1.4));//1.4>1.0
System.out.println(Math.floor(1.5));//1.5>1.0
System.out.println(Math.floor(-1.4));//-1.4>-2.0
System.out.println(Math.floor(-1.5));//-1.5>-2.0
//rint()方法 返回与参数最接近的double整数
System.out.println(Math.rint(1.4));//1.0更接近1.4
System.out.println(Math.rint(1.5));//1.5为中位值,则返回偶数2.0
System.out.println(Math.rint(-1.4));//-1.0更接近-1.4
System.out.println(Math.rint(-1.5));//-1.5为中位值,则返回偶数-2.0
//round()方法相当于四舍五入即将原来的数字加上0.5后再向下取整 返回一个最接近的int、long型值
System.out.println(Math.round(1.4));//四舍 1
System.out.println(Math.round(1.5));//五入 2
System.out.println(Math.round(-1.4));//四舍 -1
System.out.println(Math.round(-1.5));//五入相当于 floor(-1.5+0.5) -1
System.out.println(Math.round(-1.6));//向下取整 -2
返回结果如下:
类方法 | 返回结果 |
---|---|
Math.ceil(1.4) | 2.0 |
Math.ceil(1.5) | 2.0 |
Math.ceil(-1.4) | -1.0 |
Math.ceil(-1.5) | -1.0 |
Math.floor(1.4) | 1.0 |
Math.floor(1.5) | 1.0 |
Math.floor(-1.4) | -2.0 |
Math.floor(-1.5) | -2.0 |
Math.rint(1.4) | 1.0 |
Math.rint(1.5) | 2.0 |
Math.rint(-1.4) | -1.0 |
Math.rint(-1.5) | -2.0 |
Math.round(1.4) | 1 |
Math.round(1.5) | 2 |
Math.round(-1.4) | -1 |
Math.round(-1.5) | -1 |
Math.round(-1.6) | -2 |
- min():返回两个参数中的最小值。
- max():返回两个参数中的最大值。
- exp():返回自然数底数e的参数次方。
- log():返回参数的自然数底数的对数值。
- pow():返回第一个参数的第二个参数次方。
- sqrt():返回参数的算术平方根。
- sin()、cos()、tan()、asin()、acos()、atan():返回指定double类型参数的正弦值,余弦值,正切值,反正弦值,反余弦值,反正切值。
- atan2():将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。该方法通过计算 y/x 的反正切值来计算相角 theta,范围为从 -pi 到 pi。
- toDegrees():将参数转化为角度。
- toRadians():将角度(degree)转换为弧度(radians)。
System.out.println(Math.toRadians(180));//返回pi
System.out.println(Math.toDegrees(Math.PI));//返回180
- random():返回一个double类型的随机数。
参考链接:菜鸟教程-Number & Math 类