本文目录导读:

在Java中,java.lang.Math 类提供了丰富的静态方法用于执行常见的数学运算,下面通过几个典型案例来展示其用法。
基本运算:绝对值、四舍五入、幂运算
public class BasicMathExample {
public static void main(String[] args) {
// 绝对值
int absInt = Math.abs(-10); // 10
double absDouble = Math.abs(-3.14); // 3.14
// 四舍五入
long rounded1 = Math.round(3.49); // 3
long rounded2 = Math.round(3.51); // 4
// 幂运算(2的3次方)
double power = Math.pow(2, 3); // 8.0
// 平方根
double sqrt = Math.sqrt(16); // 4.0
// 最大值和最小值
int max = Math.max(10, 20); // 20
int min = Math.min(10, 20); // 10
System.out.println("绝对值: " + absInt);
System.out.println("四舍五入: " + rounded2);
System.out.println("幂运算: " + power);
System.out.println("平方根: " + sqrt);
}
}
三角函数计算
public class TrigonometryExample {
public static void main(String[] args) {
// 角度转弧度
double degrees = 45;
double radians = Math.toRadians(degrees);
// 三角函数(参数为弧度)
double sin = Math.sin(radians); // sin(45°) ≈ 0.707
double cos = Math.cos(radians); // cos(45°) ≈ 0.707
double tan = Math.tan(radians); // tan(45°) ≈ 1.0
// 反三角函数(返回弧度)
double asin = Math.asin(0.5); // ≈ 0.5236 rad (30°)
double acos = Math.acos(0.5); // ≈ 1.0472 rad (60°)
double atan = Math.atan(1.0); // ≈ 0.7854 rad (45°)
// 弧度转角度
double degreesFromRad = Math.toDegrees(asin); // 30°
System.out.printf("sin(45°) = %.3f\n", sin);
System.out.printf("asin(0.5) = %.1f°\n", degreesFromRad);
}
}
随机数生成
public class RandomExample {
public static void main(String[] args) {
// 生成 [0.0, 1.0) 范围的随机数
double random1 = Math.random();
// 生成 [min, max] 范围的随机整数
int min = 1;
int max = 100;
int randomInt = (int)(Math.random() * (max - min + 1)) + min;
// 生成 [0, 100) 范围的随机浮点数
double randomDouble = Math.random() * 100;
System.out.println("随机小数: " + random1);
System.out.println("1-100随机整数: " + randomInt);
System.out.println("0-100随机浮点数: " + randomDouble);
}
}
取整操作
public class RoundingExample {
public static void main(String[] args) {
double number = 3.7;
double ceil = Math.ceil(number); // 向上取整 → 4.0
double floor = Math.floor(number); // 向下取整 → 3.0
long round = Math.round(number); // 四舍五入 → 4
double rint = Math.rint(number); // 就近取整 → 4.0
// 特殊:.5时取偶数
double rint2 = Math.rint(2.5); // 2.0(偶数)
double rint3 = Math.rint(3.5); // 4.0(偶数)
System.out.println("向上取整: " + ceil);
System.out.println("向下取整: " + floor);
System.out.println("四舍五入: " + round);
System.out.println("2.5就近取整: " + rint2);
}
}
指数和对数运算
public class ExponLogExample {
public static void main(String[] args) {
// 自然指数 e^x
double exp = Math.exp(1); // e ≈ 2.71828...
// 自然对数 ln(x)
double log = Math.log(Math.E); // 1.0
// 以10为底的对数
double log10 = Math.log10(100); // 2.0
// 计算任意底数的对数:log_a(b) = ln(b) / ln(a)
double logBase2 = Math.log(8) / Math.log(2); // 3.0 (log₂8)
System.out.println("e^1 = " + exp);
System.out.println("ln(e) = " + log);
System.out.println("log₁₀(100) = " + log10);
System.out.println("log₂(8) = " + logBase2);
}
}
实际应用:计算两点距离
public class DistanceCalculator {
public static void main(String[] args) {
// 计算二维平面两点间距离
double x1 = 0, y1 = 0;
double x2 = 3, y2 = 4;
double distance = Math.sqrt(
Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)
);
System.out.println("两点距离: " + distance); // 5.0
// 使用 hypot 方法更安全(避免溢出)
double distance2 = Math.hypot(x2 - x1, y2 - y1);
System.out.println("使用hypot: " + distance2); // 5.0
}
}
常用 Math 方法速查表
| 方法 | 说明 | 示例 |
|---|---|---|
abs(x) |
绝对值 | Math.abs(-5) → 5 |
ceil(x) |
向上取整 | Math.ceil(3.2) → 4.0 |
floor(x) |
向下取整 | Math.floor(3.8) → 3.0 |
round(x) |
四舍五入 | Math.round(3.5) → 4 |
pow(a,b) |
a的b次方 | Math.pow(2,3) → 8.0 |
sqrt(x) |
平方根 | Math.sqrt(16) → 4.0 |
random() |
随机数[0,1) | Math.random() |
max(a,b) |
最大值 | Math.max(5,10) → 10 |
min(a,b) |
最小值 | Math.min(5,10) → 5 |
注意: Math 类的方法是静态的,直接通过类名调用,如果需要大量随机数或更复杂的随机数生成(如正态分布),建议使用 java.util.Random 类。
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播