Java中的 Number 和Math类
Java 8种基本数据类型分别对应其包装类:
byte——Byte
Short ——Short
int——Integer
Long ——Long
char——Character
float ——Float
double——Double
boolean——Boolean
而Integer、Long、Byte、Double、Float、Short这6个又是抽象类Number的子类。
Math类的方法进行基本的数字操作,如基本的指数,对数,平方根和三角函数等.。
Math的方法都是static形式。
一、自动装箱与自动拆箱:
自动装箱是将基本数据类型自动转换为包装器类型;
拆箱是将包装器类型自动转换为基本数据类型
1.自动装箱:
2.自动拆箱:
Integer a = 10;
int b = a;或int b = a.intValue();
二、Number和Math类主要方法:
下面的方法中type支持:byte、short、int、long、float、double
1.typeValue()
将Number对象转换为type数据类型的值并返回。
Integer a = 10;
System.out.println(a.intValue());
2.compareTo(type a)
将Number对象与参数a进行比较,Number对象与参数必须是相同数据类型。
如果指定的数与参数相等返回0。
如果指定的数小于参数返回-1。
如果指定的数大于参数返回1。
Integer a = 10;
System.out.println(a.compareTo(3));
3.equals(Object o)
判断Number对象是否与参数相等,参数o可以是任何对象
如果Number对象不为null,且与参数o类型与数值都相等返回true,否则返回false。
Integer a = 1;
Integer b = 3;
System.out.println(a.equals(b));
4.valueOf()
返回给定参数的原生Number对象值。
参数可以是一个参数或两个参数:
一个参数时,参数数据类型可以是基本数据类型, String等;
两个参数时,一个是 字符串 ,一个是基数(指定解析字符串时使用的 进制 数)。
语法:
Type valueOf(type i)
Type valueOf(String s, int radix)
例子:
Integer a =Integer.valueOf(10);
Integer b = Integer.valueOf(“456″,16); // 使用16进制解析字符串”456”
System.out.println(a);
System.out.println(b);
5. toString ()
返回以一个字符串表示的Number对象值。
可以无参或一个指定类型的参数:
无参时返回原数据类型的字符串表示形式;
有参时,返回指定类型数据的字符串表示形式。
Integer a = 10;
System.out.println(a.toString());
System.out.println(Integer.toString(20));
6.parseType()
将字符串参数作为十进制整数进行解析。
可以一个参数或两个参数:
如果有两个参数,使用第二个参数指定的基数,将字符串参数解析为相应类型的数字(基数可以是10,2,8或16 等进制数)。
语法:
type parseType(String s)
type parseType(String s, int radix)
例子:
int a =Integer.parseInt(“5”);
double b = Double.parseDouble(“5”);
int c = Integer.parseInt(“456″,16); // 使用16进制解析字符串”456”
System.out.println(a);
System.out.println(b);
System.out.println(c);
7.abs(type i)
返回参数i的绝对值。
Integer a = -10;
System.out.println(Math.abs(a));
输出结果:10
8.ceil()
对一个数进行上 舍入 ,返回值大于或等于给定的参数,返回类型为double型。
9.floor()
对一个数进行下舍入,返回给定参数最大的整数,该整数小于或等给定的参数,返回类型为double类型。
double a = 100.68;
float b = -90;
System.out.println(Math.ceil(a));
System.out.println(Math.ceil(b));
System.out.println(Math.floor(a));
System.out.println(Math.floor(b));
输出结果:
100.0
-90.0
101.0
-90.0
10.rint()
返回最接近参数的整数值。返回类型为double。
double a = 100.681;
double b = 100.500;
double c = 100.201;
System.out.println(Math.rint(a));
System.out.println(Math.rint(b));
System.out.println(Math.rint(c));
输出结果:
101.0
100.0
100.0
11.round()
返回一个最接近的int、long型值(四舍五入)。
double a = 100.687;
double b = 100.500;
System.out.println(Math.round(a));
System.out.println(Math.round(b));
输出结果:
101
101
12.min()
返回两个参数中的最小值。
System.out.println(Math.min(23.1, 23.0));
输出结果:23.0
13.max()
返回两个参数中的最大值。
14.random()
返回一个随机数,此随机数 >= 0.0 ,< 1.0。
System.out.println( Math.random() );
输出结果:0.02909671613289655
三、还有其他取正弦值、余弦值、角度等数学方法,此处不再说明,想进一步学习的话可自行查阅其他资料。