栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Number & Math

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Number & Math

Number & Math

处理数字问题经常需要使用的类

Number

Java提供的基本类库,尽管Java提供了内置的各种用于处理数字的内置类型(byte、float等),但是在实际开发过程中,我们常常需要用到对象,也因此java提供了对应的包装类。

各个数据类型及其对应的包装类

当我们需要把内置数据类型转变为对应的包装类的时候,编译器就会把内置数据类型装箱为包装类。同样编译器也可以将包装类拆箱成内置数据类型。

Number类属于java.lang包,因此编译时自动导入。

public static void main(String[] args) {
	int x = 5;
	Integer y = 5;//自动装箱
	System.out.println(y);
	if (x == y) { 
		System.out.println("yes");
	}
	else {
		System.out.println("no");
	}
	y = y + 5;//自动拆箱
	System.out.println(y);
}

输出结果

注意我们可以看到x等于y输出了yes,表明Integer对==做了重写。

API value()

该方法用于将Number对象转为java内置数据类型

使用时在Value前加上基本数据类型的名称

Integer x = 5;
System.out.println(x.intValue());  
//5
System.out.println(x.doublevalue());
//5.0   
compareTo()

该方法比较Number对象与输入的值。注意Number对象对应的内置数据类型必须与被比较的值的数据类型一致

当Number对象与值相等时返回0,Number对象大返回1,否则返回-1

Integer x = 5;
System.out.println(x.compareTo(-5));
//1
System.out.println(x.compareTo(5));
//0
System.out.println(x.compareTo(15)); 
//-1
System.out.println(x.compareTo(8.0));
//error
equals()

该方法用于判断两个Number对象是否相等

如 Number 对象不为 Null,且与方法的参数类型与数值都相等返回 True,否则返回 False。

Integer x = 7;
Integer y = 10;
Integer z =7;
Long a = 5L;
System.out.println(x.equals(y));  
//false
System.out.println(x.equals(z));
//true
System.out.println(x.equals(a));
//false
valueOf()

valueOf()存在三个重载

Integer的valueOf()在java中的函数原型如下:

static Integer valueOf(int i)//接收一个int并返回该int值的Integer实例对象
static Integer valueOf(String s)//接受一个String并返回String值得Integer对象
static Integer valueOf(String s, int radix)//radix是基数,用于String中提取值

示例

Integer x = Integer.valueOf(7);
Double c = Double.valueOf(1);
Float a = Float.valueOf("100");              
Integer b = Integer.valueOf("11",2);   // 使用2进制
System.out.println(x); //7
System.out.println(c); //1.0
System.out.println(a); //100.0
System.out.println(b); //3
toString()

以字符串形式返回

两个重载

String toString()//返回该对象的String
static String toString(int i)//返回指定的值的String

实例

Integer x = 100;
System.out.println(x.toString()); //100
System.out.println(Integer.toString(150));//150 
Math

Math包含了许多我们常用的个数学计算方法,比如阶乘、三角函数等

由于Math类位于java.lang 包,构造方法也是private的,所以无法创建对象。但是Math中的方法都是static的,这就意味着可以通过类名来调用它们。

示例代码:

System.out.println(Math.abs(-1));
//1
静态属性

虽然Math类不能创建对象,但是Math类提供了几个静态属性,比如自然对数e和圆周率π

System.out.println(Math.E);
//2.718281828459045
System.out.println(Math.PI);
//3.141592653589793
API abs

返回绝对值

Integer a = -100;
System.out.println(Math.abs(a));//100
ceil/floor/round

ceil:向上取整

floor:向下取整

round:四舍五入()

ceil方法:

double a = 1.1;
double b = 1.4;
double c = 1.5;
double d = -1.1;
double e = -1.4;
double f = -1.5;
System.out.println(Math.ceil(a));//2.0
System.out.println(Math.ceil(b));//2.0
System.out.println(Math.ceil(c));//2.0
System.out.println(Math.ceil(d));//-1.0
System.out.println(Math.ceil(e));//-1.0
System.out.println(Math.ceil(f));//-1.0

floor方法:

double a = 1.1;
double b = 1.4;
double c = 1.5;
double d = -1.1;
double e = -1.4;
double f = -1.5;
System.out.println(Math.floor(a));//1.0
System.out.println(Math.floor(b));//1.0
System.out.println(Math.floor(c));//1.0
System.out.println(Math.floor(d));//-2.0
System.out.println(Math.floor(e));//-2.0
System.out.println(Math.floor(f));//-2.0

round方法(注意负数的四舍五入):

double a = 1.1;
double b = 1.4;
double c = 1.5;
double d = -1.1;
double e = -1.4;
double f = -1.5;
double g = -1.6;
System.out.println(Math.round(a));//1
System.out.println(Math.round(b));//1
System.out.println(Math.round(c));//2
System.out.println(Math.round(d));//-1
System.out.println(Math.round(e));//-1
System.out.println(Math.round(f));//-1
System.out.println(Math.round(g));//-2
sin/cos/tan

三角函数

常常搭配Math的另一个方法toRadians()计算出弧度后再代入计算值

 double degrees = 60.0;
 double radians = Math.toRadians(degrees);
 System.out.println(Math.sin(radians));//0.8660254037844386
asin/acos/atan

反三角函数

常常搭配toDegrees()方法获取度数

 double d = 1.0;
 System.out.println(Math.toDegrees(Math.atan(d)));//45.0
pow

阶乘,参数必须为浮点数类型,返回值也是浮点数

 double d = 2.0;
 double a = 4.0;
 System.out.println(Math.pow(d,a));//16.0
max/min

比较两个数的大小

注意返回值不是boolean类型而是返回的数字

 double d = 2.0;
 double a = 4.0;
 System.out.println(Math.max(d,a));//4.0
 System.out.println(Math.min(d,a));//2.0
sqrt

平方根

 double d = 2.0;
 System.out.println(Math.sqrt(d));//1.4142135623730951
random

随机数生成器,范围在[0,1)

 System.out.println(Math.random());//0.6144458722566405

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号