读者可订阅专栏:Java开发指南 |【优快云@秋说】

Number类
Java中的Number类是一个抽象类,位于java.lang包中。它是所有数字包装类(如Integer、Double、Long等)的超类。Number类提供了将各种数字类型(如整数、浮点数等)转换为标准格式的方法(如intValue()、doubleValue()),并可以进行数字之间的转换和比较。
举个例子:
import java.util.ArrayList;
import java.util.List;
public class ice {
public static void main(String[] args) {
// 创建一个List来存储不同类型的数值
List<Number> numbers = new ArrayList<>();
// 添加不同类型的数值
numbers.add(10); // 添加整数
numbers.add(3.14); // 添加浮点数
numbers.add(100L); // 添加长整数
// 遍历列表并打印每个数值
for (Number number : numbers) {
System.out.println("Number: " + number);
// 使用通用的方法将数值转换为不同的基本数据类型
int intValue = number.intValue();
double doubleValue = number.doubleValue();
long longValue = number.longValue();
System.out.println("intValue: " + intValue);
System.out.println("doubleValue: " + doubleValue);
System.out.println("longValue: " + longValue);
System.out.println();
}
}
}

Number 类的常用方法:
| 方法 | 描述 |
|---|---|
byteValue() | 返回指定数值的字节值。 |
shortValue() | 返回指定数值的短整型值。 |
intValue() | 返回指定数值的整型值。 |
longValue() | 返回指定数值的长整型值。 |
floatValue() | 返回指定数值的单精度浮点值。 |
doubleValue() | 返回指定数值的双精度浮点值。 |
toString() | 返回表示该对象的字符串。 |
equals(Object obj) | 比较此数与指定对象是否相等。 |
hashCode() | 返回该对象的哈希码值。 |
Math类
Math类也是Java中的一个类,也位于java.lang包中。它包含了一系列用于执行基本数学运算的静态方法,如求幂、开方、三角函数、取整等。这些方法都是以静态方式提供的,因此无需创建Math类的实例,可以直接通过类名调用这些方法。Math类中的方法是以最优化和高效的方式实现的,因此在开发中经常被用来执行数学计算。
举例如下。
1、绝对值(Absolute Value)
int num = -10;
int absNum = Math.abs(num);
System.out.println("Absolute value of " + num + " is " + absNum);
2、平方根(Square Root)
double number = 25;
double sqrtNum = Math.sqrt(number);
System.out.println("Square root of " + number + " is " + sqrtNum);
3、取整(Rounding)
double value = 3.6;
long roundedValue = Math.round(value);
System.out.println("Rounded value of " + value + " is " + roundedValue);
4、三角函数(Trigonometric Functions)
double angleInDegrees = 45;
double sinValue = Math.sin(Math.toRadians(angleInDegrees));
//将角度转换为弧度,再计算正弦值
System.out.println("Sin of " + angleInDegrees + " degrees is " + sinValue);

public class ice {
public static void main (String []args)
{
System.out.println("45 度的正弦值:" + Math.sin(Math.PI/4));
System.out.println("90度的余弦值:" + Math.cos(90));
System.out.println("30度的正切值:" + Math.tan(Math.PI/6));
System.out.println("1.5的反正切值: " + Math.atan(1.5));
System.out.println("π/3的角度值:" + Math.toDegrees(Math.PI/3));
}
}

5、随机数生成(Random Number Generation)
double randomNum = Math.random();
System.out.println("Random number between 0 and 1: " + randomNum);
//Math.random()方法会返回一个大于等于0.0且小于1.0的随机浮点数

由于Math.random()方法会返回一个大于等于0.0且小于1.0的随机浮点数,如何生成1~100之间的随机整数呢?
public class RandomNumberExample {
public static void main(String[] args) {
//乘以100,得到一个介于0和100之间的随机浮点数。
//强制转换为整数,以去除小数部分。
//最后,将结果加上1
int randomNumber = (int) (Math.random() * 100) + 1;
// 如果随机数为101,则重新生成,直到得到1到100之间的数
while (randomNumber > 100) {
randomNumber = (int) (Math.random() * 100) + 1;
}
System.out.println("Random number between 1 and 100: " + randomNumber);
}
}

Math 类的常用方法:
| 方法 | 描述 |
|---|---|
abs(int a) | 返回参数的绝对值。 |
abs(long a) | 返回参数的绝对值。 |
abs(float a) | 返回参数的绝对值。 |
abs(double a) | 返回参数的绝对值。 |
max(int a, int b) | 返回两个参数中的最大值。 |
max(long a, long b) | 返回两个参数中的最大值。 |
max(float a, float b) | 返回两个参数中的最大值。 |
max(double a, double b) | 返回两个参数中的最大值。 |
min(int a, int b) | 返回两个参数中的最小值。 |
min(long a, long b) | 返回两个参数中的最小值。 |
min(float a, float b) | 返回两个参数中的最小值。 |
min(double a, double b) | 返回两个参数中的最小值。 |
sqrt(double a) | 返回参数的平方根。 |
cbrt(double a) | 返回参数的立方根。 |
pow(double a, double b) | 返回第一个参数的第二个参数次幂。 |
exp(double a) | 返回自然对数的底 e 的参数次幂。 |
log(double a) | 返回参数的自然对数。 |
log10(double a) | 返回参数的以 10 为底的对数。 |
sin(double a) | 返回参数的正弦值(参数是以弧度表示的角度)。 |
cos(double a) | 返回参数的余弦值(参数是以弧度表示的角度)。 |
tan(double a) | 返回参数的正切值(参数是以弧度表示的角度)。 |
asin(double a) | 返回参数的反正弦值(以弧度表示)。 |
acos(double a) | 返回参数的反余弦值(以弧度表示)。 |
atan(double a) | 返回参数的反正切值(以弧度表示)。 |
toRadians(double angdeg) | 将以度为单位的角度转换为弧度。 |
toDegrees(double angrad) | 将以弧度为单位的角度转换为度。 |
random() | 返回一个大于等于 0.0 且小于 1.0 的随机浮点数。 |
floor(double a) | 返回不大于参数的最大整数,即小于或等于该参数的最大整数。 |
ceil(double a) | 返回大于或等于参数的最小整数,即大于或等于该参数的最小整数。 |
rint(double a) | 返回最接近参数的整数值,如果两个整数等距离参数,则返回偶数值。 |
round(float a) | 返回参数的四舍五入值。 |
round(double a) | 返回参数的四舍五入值。 |
本文详细介绍了Java中的Number类和Math类,包括它们在数字处理中的作用、方法示例以及如何使用它们进行数值转换、基本数学运算和随机数生成。
626





