全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

数字相关的类有哪些?

发布时间:2023-06-13 17:25:00
发布人:zyh

  全文大约【3000】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图视频,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考......

数字相关的类有哪些

  一. Number类

  1.内容回顾

  在学习Java里的Math数学类之前,我们再来回顾一下之前学习过的Number数字类。

  我们知道,Java里的数据类型可以分为引用类型和基本类型,其中基本类型有3大类8个子类,如下图所示:

1683539612414.image

  2.数字格式化

  我们在使用数字时,很多时候并不只是简单地原文展示,还要对这些数字进行各种格式化操作,比如设置小数点后几位、数字后带%号或货币符号等。这种使用场景,在解决实际问题时是很普遍的。但我们不用在数字后手动添加,Java自带了一个DecimalFormat类,可以对数字进行格式化处理。

  DecimalFormat是NumberFormat的子类,用于格式化十进制数字,该类包含一个模式和一组符号,这些常用的符号含义如下:

1683537595325.image

  接下来小编通过一个案例来演示DecimalFormat的用法:  


public class Demo08 {
public static void main(String[] args) {
// 实例化DecimalFormat类对象,并设置格式
//小数点后保留1位
DecimalFormat df1 = new DecimalFormat("0.0");
//整数格式
DecimalFormat df2 = new DecimalFormat("#.#");
//小数点后保留3位小数
DecimalFormat df3 = new DecimalFormat("000.000");
//以100%百分比格式显示
DecimalFormat df4 = new DecimalFormat("#%");

float f = 1000f;
// 对输入的数字应用格式,并输出结果
System.out.println("0.0格式:" + df1.format(f));
System.out.println("#.#格式:" + df2.format(f));
System.out.println("000.000格式:" + df3.format(f));
System.out.println("百分比格式:" + df4.format(f));
}
}

  二. Math数学类

  1.简介

  在开发的时候,我们经常需要对数字进行各种数学计算,虽然Java给我们提供了+、-、*、/ 和 % 等基本算术运算符,但这些符号并不能进行更复杂的数学运算,例如三角函数、对数运算、指数运算等。所以为了方便实现这些数学计算功能,Java自身就给我们提供了一个Math数学类,用于进行各种常见的数学操作。

  Math中提供了用于执行基本数学运算的多个属性和方法,如初等指数、对数、平方根和三角函数等。Math 类位于 java.lang包中,它的构造方法是 private私有的,因此我们无法创建 Math类对象。为了方便调用这些方法和属性,Math类中的很多方法和属性都被定义为static形式,这样我们就可以直接调用了。

  接下来小编就给大家分别介绍一下Math类中的常用属性和方法,这些方法比较多,大家不用专门的记忆,以后用到时根据名字就能猜出来它们的功能。但是对于一些容易引起混淆的方法,小编还是希望大家要稍微记一下。

  2.静态常量

  Math类给我们提供了两个比较常用的静态常量,分别是 E 和 PI,它们的值分别等于 e(自然对数) 和 π(圆周率)。这两个属性我们可以直接调用,如下所示:  

public static void main(String[] args) {
//静态常量E和PI
System.out.println("E常量的值:" + Math.E);
System.out.println("PI常量的值:" + Math.PI);
}

  3.计算最大值、最小值和绝对值

  我们还经常对数字计算最大值、最小值和绝对值,Math类中提供了对应的多个重载方法,这些方法如下表所示:

1683537983342.image

  以上这4个方法,分别都有4个重载方法,主要是方法的参数类型不同,而且返回值也不同,它们都可以接收int、long、float、double 4种类型的参数。这几个方法的用法如下:  

public static void main(String[] args) {
//计算最大值、最小值、绝对值
System.out.println("5和35中的最大值:" + Math.max(35, 5));
System.out.println("0.1和-100中的较小值:" + Math.min(0.1, -100));
System.out.println("-900的绝对值:" + Math.abs(-900));
}

  4.求整运算

  Math类给我们提供了好几个用于求整的方法,用于得到整数部分,如下表所示:

1683538850226.image

  以上方法的用法如下所示: 

import java.util.Scanner;

public class Demo03 {

public static void main(String[] args) {
//求整运算
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字...");
//num=10.5
double num = input.nextDouble();

//向上取整
System.out.println("向上取整:"+Math.ceil(num));//11.0

//向下取整
System.out.println("向下取整:"+Math.floor(num));//10.0

//四舍五入
System.out.println("四舍五入:"+Math.round(num));//11

//返回最接近num的整数值,如果有两个同样接近的整数,则结果取偶数.
System.out.println("最接近 "+num+" 的整数:" + Math.rint(num));//10.0
}

}

  5.三角函数运算

  Math中还给我们提供了用于计算三角函数的方法,如下表所示:

1683538893452.image

  以上方法的用法如下所示:  

public class Demo04 {

public static void main(String[] args) {
//三角函数运算
//Math.sin()方法参数的单位是弧度,90度表示的是角度,需要把90度转换为弧度,即Math.PI/180*90,故转换后的弧度为Math.PI/2
System.out.println("90度的正弦值:" + Math.sin(Math.PI/2));
System.out.println("0度的余弦值:" + Math.cos(0));
System.out.println("30的正切值:" + Math.tan(30));
System.out.println("30的反正切值:" + Math.atan(30));
System.out.println("1.8弧度的角度值:" + Math.toDegrees(1.8));
System.out.println("100度的弧度值:" + Math.toRadians(100.0));
}

}

  6.指数运算

  指数运算包括求方根、取对数、求n次方等运算,Math类中定义的指数运算方法如下表所示:

1683538933094.image

  以上方法的用法如下所示:  

public static void main(String[] args) {
//指数运算
System.out.println("5的立方值:" + Math.pow(5, 3));
//求a的立方根,参数是要开立方的数
System.out.println("27的立方根:"+Math.cbrt(27));
System.out.println("16的平方根:" + Math.sqrt(16));
System.out.println("10为底,2的对数:" + Math.log10(2));
}

  7.生成随机数

  在Math类中还给我们提供了一个用于生成[01)范围内随机数的random()方法。该方法没有参数,它默认会返回一个 >=0.0、<1.0 的 double类型随机数,即随机数的取值范围是[01)。我们只需对 random()方法的返回值稍加处理,即可产生任意范围内的随机数。该方法使用比较简单,案例如下:

//随机数 默认的范围[0,1)
System.out.println(Math.random());

//随机生成一个两位数,[0,1)*90,0,90) + 10
System.out.println((int)(Math.random()*90)+10);
#数字相关的类

相关文章

flutter为什么不使用kotlin作为开发语言?

flutter为什么不使用kotlin作为开发语言?

2023-10-15
opencv和yolo是什么样的关系?

opencv和yolo是什么样的关系?

2023-10-15
矩阵的2范数与向量的2范数有什么关系?

矩阵的2范数与向量的2范数有什么关系?

2023-10-15
什么是逆强化学习?

什么是逆强化学习?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取