Math
Класс java.lang.Math содержит набор статических методов и констант для математических вычислений: корни, степени, тригонометрия, округление, случайные числа, минимум и максимум. Класс находится в пакете java.lang, поэтому импортировать его не нужно.
Все методы класса Math — статические. Это значит, что их нужно вызывать через имя класса: Math.sqrt(4), а не создавать объект. Сам класс Math объявлен final, и создать его экземпляр нельзя.
Внутри класса определены две основные константы: Math.PI (число π ≈ 3.14159…) и Math.E (основание натурального логарифма ≈ 2.71828…).
Зачем нужен
считать корни, степени и логарифмы;
работать с тригонометрией (синусы, косинусы);
округлять дробные числа;
генерировать случайные числа;
находить минимум и максимум двух значений.
Использование
Никаких импортов не требуется:
double r = Math.sqrt(25.0); // 5.0
double p = Math.pow(2, 10); // 1024.0
int m = Math.max(7, 12); // 12
Популярные методы и константы
Метод / Константа |
Назначение |
|---|---|
|
константа π |
|
константа e |
|
модуль (абсолютное значение) |
|
максимум двух чисел |
|
минимум двух чисел |
|
квадратный корень |
|
кубический корень |
|
возведение в степень a^b |
|
e в степени x |
|
натуральный логарифм |
|
десятичный логарифм |
|
тригонометрия (в радианах) |
|
градусы → радианы |
|
радианы → градусы |
|
округление к ближайшему целому |
|
округление вниз |
|
округление вверх |
|
случайное число [0.0, 1.0) |
|
знак: -1.0, 0.0 или 1.0 |
|
sqrt(a*a + b*b) |
Примеры
Пример 1. Модуль и сравнение
public class Demo1 {
public static void main(String[] args) {
int a = -7;
int b = 5;
System.out.println("|a| = " + Math.abs(a));
System.out.println("max = " + Math.max(a, b));
System.out.println("min = " + Math.min(a, b));
}
}
Вывод:
|a| = 7
max = 5
min = -7
Пример 2. Корень и степень
public class Demo2 {
public static void main(String[] args) {
System.out.println("sqrt(81) = " + Math.sqrt(81));
System.out.println("cbrt(27) = " + Math.cbrt(27));
System.out.println("2^10 = " + Math.pow(2, 10));
}
}
Вывод:
sqrt(81) = 9.0
cbrt(27) = 3.0
2^10 = 1024.0
Пример 3. Округление
public class Demo3 {
public static void main(String[] args) {
double x = 3.7;
double y = 3.2;
System.out.println("round(3.7) = " + Math.round(x));
System.out.println("floor(3.7) = " + Math.floor(x));
System.out.println("ceil(3.2) = " + Math.ceil(y));
}
}
Вывод:
round(3.7) = 4
floor(3.7) = 3.0
ceil(3.2) = 4.0
Пример 4. Длина гипотенузы
public class Demo4 {
public static void main(String[] args) {
double a = 3;
double b = 4;
double c = Math.hypot(a, b);
System.out.println("Гипотенуза: " + c);
}
}
Вывод:
Гипотенуза: 5.0
Пример 5. Площадь круга
public class Demo5 {
public static void main(String[] args) {
double r = 5;
double area = Math.PI * Math.pow(r, 2);
System.out.printf("Площадь круга радиуса %.0f = %.4f%n", r, area);
}
}
Вывод:
Площадь круга радиуса 5 = 78,5398
Пример 6. Случайное число от 1 до 6 (кубик)
public class Demo6 {
public static void main(String[] args) {
// фиксируем seed через java.util.Random для воспроизводимого вывода
java.util.Random rnd = new java.util.Random(42);
for (int i = 0; i < 5; i++) {
int dice = 1 + rnd.nextInt(6);
System.out.println("Бросок " + (i + 1) + ": " + dice);
}
}
}
Вывод (для seed 42):
Бросок 1: 1
Бросок 2: 2
Бросок 3: 5
Бросок 4: 4
Бросок 5: 5
Пример 7. Тригонометрия
public class Demo7 {
public static void main(String[] args) {
double deg = 30;
double rad = Math.toRadians(deg);
System.out.printf("sin(30°) = %.4f%n", Math.sin(rad));
System.out.printf("cos(60°) = %.4f%n", Math.cos(Math.toRadians(60)));
}
}
Вывод:
sin(30°) = 0,5000
cos(60°) = 0,5000
Пример 8. Логарифмы и экспонента
public class Demo8 {
public static void main(String[] args) {
System.out.println("log10(1000) = " + Math.log10(1000));
System.out.println("ln(e) = " + Math.log(Math.E));
System.out.println("exp(1) = " + Math.exp(1));
}
}
Вывод:
log10(1000) = 3.0
ln(e) = 1.0
exp(1) = 2.718281828459045
См. также
Примечание
Лицензия и источники
Техническое описание класса адаптировано из официальной Java API Documentation (https://docs.oracle.com/en/java/javase/), Oracle Free Documentation License. Перевод на русский, примеры и пояснения — © AlashEd Wiki.