Spec-Zone.ru › OpenJDK 25

Класс StrictMath

java.lang.Object
java.lang.StrictMath
public final class StrictMath extends Object
Класс StrictMath содержит методы для выполнения основных числовых операций, таких как элементарные экспоненциальная и логарифмическая функции, извлечение квадратного корня и тригонометрические функции.

Чтобы обеспечить переносимость программ на Java, определения некоторых числовых функций в этом пакете требуют, чтобы они выдавали те же результаты, что и определённые опубликованные алгоритмы. Эти алгоритмы доступны в известной сетевой библиотеке netlib как пакет «Freely Distributable Math Library», fdlibm. Эти алгоритмы, написанные на языке программирования C, следует считать преобразованными в Java и выполняемыми с соблюдением правил арифметики Java для всех операций с плавающей точкой и целочисленных операций. При преобразовании используются следующие трансформации:

  • Извлечение и установка старшей и младшей половин 64-битного значения double в C выполняются с помощью методов платформы Java, осуществляющих побитовые преобразования из double в long и из long в double.
  • Беззнаковые значения int в C сопоставляются со знаковыми значениями int в Java; операции изменяются так, чтобы воспроизводить семантику беззнаковых значений там, где результаты одной и той же текстовой операции отличались бы. Например, сдвиги >> для беззнаковых значений C заменяются сдвигами >>> для знаковых значений Java. Сравнения заданной ширины для беззнаковых значений C (<, <=, >, >=) заменяются семантически эквивалентными вызовами compareUnsigned.

Математическая библиотека Java определена в соответствии с версией 5.3 fdlibm. Если fdlibm предоставляет несколько определений функции (например, acos), следует использовать вариант «основной функции IEEE 754» (находящийся в файле, имя которого начинается с буквы e). Методы, для которых требуется семантика fdlibm: sin, cos, tan, asin, acos, atan, exp, log, log10, cbrt, atan2, pow, sinh, cosh, tanh, hypot, expm1 и log1p.

Платформа использует целочисленную арифметику со знаковым представлением в дополнительном коде и примитивными типами int и long. Разработчику следует выбрать примитивный тип так, чтобы арифметические операции стабильно давали правильные результаты; в некоторых случаях это означает, что операции не должны приводить к переполнению диапазона значений вычисления. Рекомендуется выбирать примитивный тип и алгоритм, позволяющие избежать переполнения. Если размер равен int или long и необходимо обнаруживать ошибки переполнения, методы, имена которых оканчиваются на Exact, выбрасывают ArithmeticException при переполнении результата.

Рекомендуемые операции IEEE 754

В классе Math рассматривается, как общие критерии качества реализации для выбранных методов Math и StrictMath соотносятся с рекомендуемыми операциями IEEE 754.
Начиная с:
1.3
Внешние спецификации
  • Стандарт IEEE для арифметики с плавающей точкой

Краткое описание полей

Модификатор и тип Поле Описание
static final double E
Значение double, наиболее близкое к e — основанию натуральных логарифмов.
static final double PI
Значение double, наиболее близкое к pi (π) — отношению длины окружности к её диаметру.
static final double TAU
Значение double, наиболее близкое к tau (τ) — отношению длины окружности к её радиусу.

Краткое описание методов

Модификатор и тип Метод Описание
static double abs(double a)
Возвращает абсолютное значение значения типа double.
static float abs(float a)
Возвращает абсолютное значение значения типа float.
static int abs(int a)
Возвращает абсолютное значение значения типа int.
static long abs(long a)
Возвращает абсолютное значение значения типа long.
static int absExact(int a)
Возвращает математическое абсолютное значение значения типа int, если оно точно представимо как int; если результат выходит за пределы положительного диапазона int, выбрасывается ArithmeticException.
static long absExact(long a)
Возвращает математическое абсолютное значение значения типа long, если оно точно представимо как long; если результат выходит за пределы положительного диапазона long, выбрасывается ArithmeticException.
static double acos(double a)
Возвращает арккосинус значения; возвращаемый угол находится в диапазоне от 0.0 до pi.
static int addExact(int x, int y)
Возвращает сумму аргументов; если результат переполняет int, выбрасывается исключение.
static long addExact(long x, long y)
Возвращает сумму аргументов; если результат переполняет long, выбрасывается исключение.
static double asin(double a)
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2.
static double atan(double a)
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2.
static double atan2(double y, double x)
Возвращает угол theta, полученный при преобразовании декартовых координат (x, y) в полярные координаты (r, theta).
static double cbrt(double a)
Возвращает кубический корень значения типа double.
static double ceil(double a)
Возвращает наименьшее значение типа double (ближайшее к минус бесконечности), которое больше или равно аргументу и является математическим целым числом.
static int ceilDiv(int x, int y)
Возвращает наименьшее значение типа int (ближайшее к минус бесконечности), которое больше или равно алгебраическому частному.
static long ceilDiv(long x, int y)
Возвращает наименьшее значение типа long (ближайшее к минус бесконечности), которое больше или равно алгебраическому частному.
static long ceilDiv(long x, long y)
Возвращает наименьшее значение типа long (ближайшее к минус бесконечности), которое больше или равно алгебраическому частному.
static int ceilDivExact(int x, int y)
Возвращает наименьшее значение типа int (ближайшее к минус бесконечности), которое больше или равно алгебраическому частному.
static long ceilDivExact(long x, long y)
Возвращает наименьшее значение типа long (ближайшее к минус бесконечности), которое больше или равно алгебраическому частному.
static int ceilMod(int x, int y)
Возвращает остаток от деления с округлением вверх для аргументов типа int.
static int ceilMod(long x, int y)
Возвращает остаток от деления с округлением вверх для аргументов типа long и int.
static long ceilMod(long x, long y)
Возвращает остаток от деления с округлением вверх для аргументов типа long.
static double clamp(double value, double min, double max)
Ограничивает значение диапазоном от min до max.
static float clamp(float value, float min, float max)
Ограничивает значение диапазоном от min до max.
static int clamp(long value, int min, int max)
Ограничивает значение диапазоном от min до max.
static long clamp(long value, long min, long max)
Ограничивает значение диапазоном от min до max.
static double copySign(double magnitude, double sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой.
static float copySign(float magnitude, float sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой.
static double cos(double a)
Возвращает тригонометрический косинус угла.
static double cosh(double x)
Возвращает гиперболический косинус значения типа double.
static int decrementExact(int a)
Возвращает аргумент, уменьшенный на единицу; если результат переполняет int, выбрасывается исключение.
static long decrementExact(long a)
Возвращает аргумент, уменьшенный на единицу; если результат переполняет long, выбрасывается исключение.
static int divideExact(int x, int y)
Возвращает частное аргументов; если результат переполняет int, выбрасывается исключение.
static long divideExact(long x, long y)
Возвращает частное аргументов; если результат переполняет long, выбрасывается исключение.
static double exp(double a)
Возвращает число Эйлера e, возведённое в степень значения типа double.
static double expm1(double x)
Возвращает ex −1.
static double floor(double a)
Возвращает наибольшее значение типа double (ближайшее к плюс бесконечности), которое меньше или равно аргументу и является математическим целым числом.
static int floorDiv(int x, int y)
Возвращает наибольшее значение типа int (ближайшее к плюс бесконечности), которое меньше или равно алгебраическому частному.
static long floorDiv(long x, int y)
Возвращает наибольшее значение типа long (ближайшее к плюс бесконечности), которое меньше или равно алгебраическому частному.
static long floorDiv(long x, long y)
Возвращает наибольшее значение типа long (ближайшее к плюс бесконечности), которое меньше или равно алгебраическому частному.
static int floorDivExact(int x, int y)
Возвращает наибольшее значение типа int (ближайшее к плюс бесконечности), которое меньше или равно алгебраическому частному.
static long floorDivExact(long x, long y)
Возвращает наибольшее значение типа long (ближайшее к плюс бесконечности), которое меньше или равно алгебраическому частному.
static int floorMod(int x, int y)
Возвращает остаток от деления с округлением вниз для аргументов типа int.
static int floorMod(long x, int y)
Возвращает остаток от деления с округлением вниз для аргументов типа long и int.
static long floorMod(long x, long y)
Возвращает остаток от деления с округлением вниз для аргументов типа long.
static double fma(double a, double b, double c)
Возвращает результат слитого умножения с добавлением для трёх аргументов: точное произведение первых двух аргументов складывается с третьим аргументом, после чего результат однократно округляется до ближайшего значения double.
static float fma(float a, float b, float c)
Возвращает результат слитого умножения с добавлением для трёх аргументов: точное произведение первых двух аргументов складывается с третьим аргументом, после чего результат однократно округляется до ближайшего значения float.
static int getExponent(double d)
Возвращает смещённый показатель степени, используемый в представлении значения типа double.
static int getExponent(float f)
Возвращает смещённый показатель степени, используемый в представлении значения типа float.
static double hypot(double x, double y)
Возвращает sqrt(x2 +y2) без промежуточного переполнения или потери значимости.
static double IEEEremainder(double f1, double f2)
Выполняет операцию получения остатка от деления двух аргументов в соответствии со стандартом IEEE 754.
static int incrementExact(int a)
Возвращает аргумент, увеличенный на единицу; если результат переполняет int, выбрасывается исключение.
static long incrementExact(long a)
Возвращает аргумент, увеличенный на единицу; если результат переполняет long, выбрасывается исключение.
static double log(double a)
Возвращает натуральный логарифм (по основанию e) значения типа double.
static double log10(double a)
Возвращает десятичный логарифм значения типа double.
static double log1p(double x)
Возвращает натуральный логарифм суммы аргумента и 1.
static double max(double a, double b)
Возвращает большее из двух значений типа double.
static float max(float a, float b)
Возвращает большее из двух значений типа float.
static int max(int a, int b)
Возвращает большее из двух значений типа int.
static long max(long a, long b)
Возвращает большее из двух значений типа long.
static double min(double a, double b)
Возвращает меньшее из двух значений типа double.
static float min(float a, float b)
Возвращает меньшее из двух значений типа float.
static int min(int a, int b)
Возвращает меньшее из двух значений типа int.
static long min(long a, long b)
Возвращает меньшее из двух значений типа long.
static int multiplyExact(int x, int y)
Возвращает произведение аргументов; если результат переполняет int, выбрасывается исключение.
static long multiplyExact(long x, int y)
Возвращает произведение аргументов; если результат переполняет long, выбрасывается исключение.
static long multiplyExact(long x, long y)
Возвращает произведение аргументов; если результат переполняет long, выбрасывается исключение.
static long multiplyFull(int x, int y)
Возвращает точное математическое произведение аргументов.
static long multiplyHigh(long x, long y)
Возвращает в виде long 64 старших бита 128-битного произведения двух 64-битных множителей.
static int negateExact(int a)
Возвращает противоположное значение аргумента; если результат переполняет int, выбрасывается исключение.
static long negateExact(long a)
Возвращает противоположное значение аргумента; если результат переполняет long, выбрасывается исключение.
static double nextAfter(double start, double direction)
Возвращает число с плавающей точкой, соседнее с первым аргументом в направлении второго аргумента.
static float nextAfter(float start, double direction)
Возвращает число с плавающей точкой, соседнее с первым аргументом в направлении второго аргумента.
static double nextDown(double d)
Возвращает значение с плавающей точкой, соседнее с d в направлении минус бесконечности.
static float nextDown(float f)
Возвращает значение с плавающей точкой, соседнее с f в направлении минус бесконечности.
static double nextUp(double d)
Возвращает значение с плавающей точкой, соседнее с d в направлении плюс бесконечности.
static float nextUp(float f)
Возвращает значение с плавающей точкой, соседнее с f в направлении плюс бесконечности.
static double pow(double a, double b)
Возвращает значение первого аргумента, возведённого в степень второго аргумента.
static int powExact(int x, int n)
Возвращает x, возведённое в степень n; если результат переполняет int, выбрасывается исключение.
static long powExact(long x, int n)
Возвращает x, возведённое в степень n; если результат переполняет long, выбрасывается исключение.
static double random()
Возвращает значение типа double с положительным знаком, не меньшее 0.0 и меньшее 1.0.
static double rint(double a)
Возвращает значение типа double, наиболее близкое к аргументу и являющееся математическим целым числом.
static long round(double a)
Возвращает ближайшее к аргументу значение типа long; при равном расстоянии округляет в сторону плюс бесконечности.
static int round(float a)
Возвращает ближайшее к аргументу значение типа int; при равном расстоянии округляет в сторону плюс бесконечности.
static double scalb(double d, int scaleFactor)
Возвращает d × 2scaleFactor с округлением, как если бы вычисление выполнялось одним правильно округлённым умножением чисел с плавающей точкой.
static float scalb(float f, int scaleFactor)
Возвращает f × 2scaleFactor с округлением, как если бы вычисление выполнялось одним правильно округлённым умножением чисел с плавающей точкой.
static double signum(double d)
Возвращает значение функции знака аргумента: ноль, если аргумент равен нулю; 1.0, если аргумент больше нуля; −1.0, если аргумент меньше нуля.
static float signum(float f)
Возвращает значение функции знака аргумента: ноль, если аргумент равен нулю; 1.0f, если аргумент больше нуля; −1.0f, если аргумент меньше нуля.
static double sin(double a)
Возвращает тригонометрический синус угла.
static double sinh(double x)
Возвращает гиперболический синус значения типа double.
static double sqrt(double a)
Возвращает правильно округлённый положительный квадратный корень значения типа double.
static int subtractExact(int x, int y)
Возвращает разность аргументов; если результат переполняет int, выбрасывается исключение.
static long subtractExact(long x, long y)
Возвращает разность аргументов; если результат переполняет long, выбрасывается исключение.
static double tan(double a)
Возвращает тригонометрический тангенс угла.
static double tanh(double x)
Возвращает гиперболический тангенс значения типа double.
static double toDegrees(double angrad)
Преобразует угол, заданный в радианах, в приблизительно эквивалентный угол, заданный в градусах.
static int toIntExact(long value)
Возвращает значение аргумента long; если значение переполняет int, выбрасывается исключение.
static double toRadians(double angdeg)
Преобразует угол, заданный в градусах, в приблизительно эквивалентный угол, заданный в радианах.
static double ulp(double d)
Возвращает размер ulp аргумента.
static float ulp(float f)
Возвращает размер ulp аргумента.
static int unsignedMultiplyExact(int x, int y)
Возвращает произведение беззнаковых аргументов; если результат переполняет беззнаковый int, выбрасывается исключение.
static long unsignedMultiplyExact(long x, int y)
Возвращает произведение беззнаковых аргументов; если результат переполняет беззнаковый long, выбрасывается исключение.
static long unsignedMultiplyExact(long x, long y)
Возвращает произведение беззнаковых аргументов; если результат переполняет беззнаковый long, выбрасывается исключение.
static long unsignedMultiplyHigh(long x, long y)
Возвращает в виде long 64 старших бита беззнакового 128-битного произведения двух беззнаковых 64-битных множителей.
static int unsignedPowExact(int x, int n)
Возвращает беззнаковое x, возведённое в степень n; если результат переполняет беззнаковый int, выбрасывается исключение.
static long unsignedPowExact(long x, int n)
Возвращает беззнаковое x, возведённое в степень n; если результат переполняет беззнаковый long, выбрасывается исключение.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

E

public static final double E
Значение double, наиболее близкое к e — основанию натуральных логарифмов.
См. также:
  • Значения констант полей

PI

public static final double PI
Значение double, наиболее близкое к pi (π) — отношению длины окружности к её диаметру.
См. также:
  • Значения констант полей

TAU

public static final double TAU
Значение double, наиболее близкое к tau (τ) — отношению длины окружности к её радиусу.
Примечание к API:
Значение pi вдвое меньше значения tau; другими словами, tau вдвое больше pi .
С версии:
19
См. также:
  • Значения констант полей

Подробное описание методов

sin

public static double sin(double a)
Возвращает тригонометрический синус угла. Особые случаи:
  • Если аргумент — NaN или бесконечность, результатом будет NaN.
  • Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
Параметры:
a — угол в радианах.
Возвращает:
синус аргумента.

cos

public static double cos(double a)
Возвращает тригонометрический косинус угла. Особые случаи:
  • Если аргумент — NaN или бесконечность, результатом будет NaN.
  • Если аргумент равен нулю, результатом будет 1.0.
Параметры:
a — угол в радианах.
Возвращает:
косинус аргумента.

tan

public static double tan(double a)
Возвращает тригонометрический тангенс угла. Особые случаи:
  • Если аргумент — NaN или бесконечность, результатом будет NaN.
  • Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
Параметры:
a — угол в радианах.
Возвращает:
тангенс аргумента.

asin

public static double asin(double a)
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2. Особые случаи:
  • Если аргумент — NaN или его абсолютное значение больше 1, результатом будет NaN.
  • Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
Параметры:
a — значение, арксинус которого требуется вернуть.
Возвращает:
арксинус аргумента.

acos

public static double acos(double a)
Возвращает арккосинус значения; возвращаемый угол находится в диапазоне от 0.0 до pi. Особые случаи:
  • Если аргумент — NaN или его абсолютное значение больше 1, результатом будет NaN.
  • Если аргумент равен 1.0, результатом будет положительный ноль.
Параметры:
a — значение, арккосинус которого требуется вернуть.
Возвращает:
арккосинус аргумента.

atan

public static double atan(double a)
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2. Особые случаи:
  • Если аргумент — NaN, результатом будет NaN.
  • Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
  • Если аргумент бесконечен, результатом будет значение, наиболее близкое к pi/2 и имеющее тот же знак, что и входное значение.
Параметры:
a — значение, арктангенс которого требуется вернуть.
Возвращает:
арктангенс аргумента.

toRadians

public static double toRadians(double angdeg)
Преобразует угол, измеренный в градусах, в приблизительно эквивалентный угол, измеренный в радианах. Преобразование градусов в радианы, как правило, является неточным.
Параметры:
angdeg — угол в градусах
Возвращает:
значение угла angdeg в радианах.

toDegrees

public static double toDegrees(double angrad)
Преобразует угол, измеренный в радианах, в приблизительно эквивалентный угол, измеренный в градусах. Преобразование радиан в градусы, как правило, является неточным; пользователям не следует ожидать, что cos(toRadians(90.0)) будет в точности равен 0.0.
Параметры:
angrad — угол в радианах
Возвращает:
значение угла angrad в градусах.

exp

public static double exp(double a)
Возвращает число Эйлера e в степени, равной значению double. Особые случаи:
  • Если аргумент — NaN, результатом будет NaN.
  • Если аргумент — положительная бесконечность, результатом будет положительная бесконечность.
  • Если аргумент — отрицательная бесконечность, результатом будет положительный ноль.
  • Если аргумент равен нулю, результатом будет 1.0.
Параметры:
a — показатель степени, в которую возводится e.
Возвращает:
значение ea, где e — основание натуральных логарифмов.

log

public static double log(double a)
Возвращает натуральный логарифм (по основанию e) значения double. Особые случаи:
  • Если аргумент — NaN или меньше нуля, результатом будет NaN.
  • Если аргумент — положительная бесконечность, результатом будет положительная бесконечность.
  • Если аргумент — положительный или отрицательный ноль, результатом будет отрицательная бесконечность.
  • Если аргумент равен 1.0, результатом будет положительный ноль.
Параметры:
a — значение
Возвращает:
значение ln a, натуральный логарифм a.

log10

public static double log10(double a)
Возвращает логарифм значения double по основанию 10. Особые случаи:
  • Если аргумент — NaN или меньше нуля, результатом будет NaN.
  • Если аргумент — положительная бесконечность, результатом будет положительная бесконечность.
  • Если аргумент — положительный или отрицательный ноль, результатом будет отрицательная бесконечность.
  • Если аргумент равен 10n для целого n, результатом будет n. В частности, если аргумент равен 1.0 (100), результатом будет положительный ноль.
Параметры:
a — значение
Возвращает:
логарифм a по основанию 10.
С версии:
1.5

sqrt

public static double sqrt(double a)
Возвращает правильно округлённый положительный квадратный корень из значения double. Особые случаи:
  • Если аргумент — NaN или меньше нуля, результатом будет NaN.
  • Если аргумент — положительная бесконечность, результатом будет положительная бесконечность.
  • Если аргумент — положительный или отрицательный ноль, результатом будет сам аргумент.
В противном случае результатом будет значение double, ближайшее к истинному математическому квадратному корню из значения аргумента.
Параметры:
a — значение.
Возвращает:
положительный квадратный корень из a.

cbrt

public static double cbrt(double a)
Возвращает кубический корень из значения double. Для положительных конечных значений x, cbrt(-x) == -cbrt(x); то есть кубический корень из отрицательного значения равен отрицательному кубическому корню из абсолютного значения этого числа. Особые случаи:
  • Если аргумент — NaN, результатом будет NaN.
  • Если аргумент бесконечен, результатом будет бесконечность с тем же знаком, что и у аргумента.
  • Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
Параметры:
a — значение.
Возвращает:
кубический корень из a.
С версии:
1.5

IEEEremainder

public static double IEEEremainder(double f1, double f2)
Вычисляет остаток от деления двух аргументов в соответствии со стандартом IEEE 754. Математически значение остатка равно f1 - f2 × n, где n — целое число, ближайшее к точному математическому значению частного f1/f2; если два целых числа одинаково близки к f1/f2, то n — чётное число. Если остаток равен нулю, его знак совпадает со знаком первого аргумента. Особые случаи:
  • Если любой из аргументов — NaN, первый аргумент — бесконечность или второй аргумент — положительный либо отрицательный ноль, результатом будет NaN.
  • Если первый аргумент конечен, а второй — бесконечность, результатом будет первый аргумент.
Параметры:
f1 — делимое.
f2 — делитель.
Возвращает:
остаток от деления f1 на f2.

ceil

public static double ceil(double a)
Возвращает наименьшее значение double (ближайшее к отрицательной бесконечности), которое больше аргумента или равно ему и является математическим целым числом. Особые случаи:
  • Если значение аргумента уже является математическим целым числом, результатом будет сам аргумент.
  • Если аргумент — NaN, бесконечность, положительный ноль или отрицательный ноль, результатом будет сам аргумент.
  • Если значение аргумента меньше нуля, но больше -1.0, результатом будет отрицательный ноль.
Обратите внимание: значение StrictMath.ceil(x) в точности равно значению -StrictMath.floor(-x).
Параметры:
a — значение.
Возвращает:
наименьшее значение с плавающей точкой (ближайшее к отрицательной бесконечности), которое больше аргумента или равно ему и является математическим целым числом.

floor

public static double floor(double a)
Возвращает наибольшее значение double (ближайшее к положительной бесконечности), которое меньше аргумента или равно ему и является математическим целым числом. Особые случаи:
  • Если значение аргумента уже является математическим целым числом, результатом будет сам аргумент.
  • Если аргумент — NaN, бесконечность, положительный ноль или отрицательный ноль, результатом будет сам аргумент.
Параметры:
a — значение.
Возвращает:
наибольшее значение с плавающей точкой (ближайшее к положительной бесконечности), которое меньше аргумента или равно ему и является математическим целым числом.

rint

public static double rint(double a)
Возвращает значение double, наиболее близкое к аргументу и являющееся математическим целым числом. Если два значения double, являющиеся математическими целыми числами, находятся на одинаковом расстоянии от значения аргумента, результатом будет целое число, являющееся чётным. Особые случаи:
  • Если значение аргумента уже является математическим целым числом, результатом будет сам аргумент.
  • Если аргумент — NaN, бесконечность, положительный ноль или отрицательный ноль, результатом будет сам аргумент.
Параметры:
a — значение.
Возвращает:
ближайшее к a значение с плавающей точкой, являющееся математическим целым числом.

atan2

public static double atan2(double y, double x)
Возвращает угол theta, полученный при преобразовании декартовых координат (x, y) в полярные координаты (r, theta). Этот метод вычисляет фазу theta, вычисляя арктангенс y/x в диапазоне от −pi до pi. Особые случаи:
  • Если любой из аргументов — NaN, результатом будет NaN.
  • Если первый аргумент — положительный ноль, а второй аргумент положителен, либо первый аргумент положителен и конечен, а второй аргумент — положительная бесконечность, результатом будет положительный ноль.
  • Если первый аргумент — отрицательный ноль, а второй аргумент положителен, либо первый аргумент отрицателен и конечен, а второй аргумент — положительная бесконечность, результатом будет отрицательный ноль.
  • Если первый аргумент — положительный ноль, а второй аргумент отрицателен, либо первый аргумент положителен и конечен, а второй аргумент — отрицательная бесконечность, результатом будет значение double, ближайшее к pi.
  • Если первый аргумент — отрицательный ноль, а второй аргумент отрицателен, либо первый аргумент отрицателен и конечен, а второй аргумент — отрицательная бесконечность, результатом будет значение double, ближайшее к -pi.
  • Если первый аргумент положителен, а второй аргумент — положительный или отрицательный ноль, либо первый аргумент — положительная бесконечность, а второй аргумент конечен, результатом будет значение double, ближайшее к pi/2.
  • Если первый аргумент отрицателен, а второй аргумент — положительный или отрицательный ноль, либо первый аргумент — отрицательная бесконечность, а второй аргумент конечен, результатом будет значение double, ближайшее к -pi/2.
  • Если оба аргумента — положительные бесконечности, результатом будет значение double, ближайшее к pi/4.
  • Если первый аргумент — положительная бесконечность, а второй аргумент — отрицательная бесконечность, результатом будет значение double, ближайшее к 3*pi/4.
  • Если первый аргумент — отрицательная бесконечность, а второй аргумент — положительная бесконечность, результатом будет значение double, ближайшее к -pi/4.
  • Если оба аргумента — отрицательные бесконечности, результатом будет значение double, ближайшее к -3*pi/4.
Примечание к API:
Для y с положительным знаком и конечного ненулевого x точное математическое значение atan2 равно:
  • Если x > 0, atan(abs(y/x))
  • Если x < 0, π - atan(abs(y/x))
Параметры:
y — координата ординаты
x — координата абсциссы
Возвращает:
компоненту theta точки (r, theta) в полярных координатах, соответствующую точке (x, y) в декартовых координатах.

pow

public static double pow(double a, double b)
Возвращает значение первого аргумента, возведённое в степень, равную второму аргументу. Особые случаи:
  • Если второй аргумент — положительный или отрицательный ноль, результатом будет 1.0.
  • Если второй аргумент равен 1.0, результатом будет первый аргумент.
  • Если второй аргумент — NaN, результатом будет NaN.
  • Если первый аргумент — NaN, а второй аргумент ненулевой, результатом будет NaN.
  • Если
    • абсолютное значение первого аргумента больше 1, а второй аргумент — положительная бесконечность, или
    • абсолютное значение первого аргумента меньше 1, а второй аргумент — отрицательная бесконечность,
    результатом будет положительная бесконечность.
  • Если
    • абсолютное значение первого аргумента больше 1, а второй аргумент — отрицательная бесконечность, или
    • абсолютное значение первого аргумента меньше 1, а второй аргумент — положительная бесконечность,
    результатом будет положительный ноль.
  • Если абсолютное значение первого аргумента равно 1, а второй аргумент — бесконечность, результатом будет NaN.
  • Если
    • первый аргумент — положительный ноль, а второй аргумент больше нуля, или
    • первый аргумент — положительная бесконечность, а второй аргумент меньше нуля,
    результатом будет положительный ноль.
  • Если
    • первый аргумент — положительный ноль, а второй аргумент меньше нуля, или
    • первый аргумент — положительная бесконечность, а второй аргумент больше нуля,
    результатом будет положительная бесконечность.
  • Если
    • первый аргумент — отрицательный ноль, а второй аргумент больше нуля, но не является конечным нечётным целым числом, или
    • первый аргумент — отрицательная бесконечность, а второй аргумент меньше нуля, но не является конечным нечётным целым числом,
    результатом будет положительный ноль.
  • Если
    • первый аргумент — отрицательный ноль, а второй аргумент — положительное конечное нечётное целое число, или
    • первый аргумент — отрицательная бесконечность, а второй аргумент — отрицательное конечное нечётное целое число,
    результатом будет отрицательный ноль.
  • Если
    • первый аргумент — отрицательный ноль, а второй аргумент меньше нуля, но не является конечным нечётным целым числом, или
    • первый аргумент — отрицательная бесконечность, а второй аргумент больше нуля, но не является конечным нечётным целым числом,
    результатом будет положительная бесконечность.
  • Если
    • первый аргумент — отрицательный ноль, а второй аргумент — отрицательное конечное нечётное целое число, или
    • первый аргумент — отрицательная бесконечность, а второй аргумент — положительное конечное нечётное целое число,
    результатом будет отрицательная бесконечность.
  • Если первый аргумент конечен и меньше нуля:
    • если второй аргумент — конечное чётное целое число, результат равен результату возведения абсолютного значения первого аргумента в степень, равную второму аргументу;
    • если второй аргумент — конечное нечётное целое число, результат равен отрицательному значению результата возведения абсолютного значения первого аргумента в степень, равную второму аргументу;
    • если второй аргумент конечен, но не является целым числом, результатом будет NaN.
  • Если оба аргумента — целые числа, результат в точности равен математическому результату возведения первого аргумента в степень, равную второму аргументу, если этот результат может быть точно представлен значением double.

(В приведённых выше описаниях значение с плавающей точкой считается целым числом тогда и только тогда, когда оно конечно и является неподвижной точкой метода ceil или, что эквивалентно, неподвижной точкой метода floor. Значение является неподвижной точкой метода с одним аргументом тогда и только тогда, когда результат применения метода к этому значению равен самому значению.)

Примечание к API:
Определения особых случаев для этого метода отличаются от определений особых случаев рекомендованной IEEE 754 операции pow для возведения ±1.0 в бесконечную степень. Этот метод считает такие случаи неопределёнными и предписывает возвращать NaN. Спецификация IEEE 754 трактует бесконечную степень как большое целое число (числа с плавающей точкой большого модуля являются целыми числами, а именно чётными целыми числами) и поэтому предписывает возвращать 1.0.
Параметры:
a — основание.
b — показатель степени.
Возвращает:
значение ab.

round

public static int round(float a)
Возвращает ближайшее int к аргументу; при равном расстоянии округляет в сторону положительной бесконечности.

Особые случаи:

  • Если аргумент — NaN, результатом будет 0.
  • Если аргумент — отрицательная бесконечность или любое значение, меньшее либо равное значению Integer.MIN_VALUE, результат будет равен значению Integer.MIN_VALUE.
  • Если аргумент — положительная бесконечность или любое значение, большее либо равное значению Integer.MAX_VALUE, результат будет равен значению Integer.MAX_VALUE.
Параметры:
a — значение с плавающей точкой, которое нужно округлить до целого числа.
Возвращает:
значение аргумента, округлённое до ближайшего значения int.
См. также:
  • Integer.MAX_VALUE
  • Integer.MIN_VALUE

round

public static long round(double a)
Возвращает ближайшее long к аргументу; при равном расстоянии округляет в сторону положительной бесконечности.

Особые случаи:

  • Если аргумент — NaN, результатом будет 0.
  • Если аргумент — отрицательная бесконечность или любое значение, меньшее либо равное значению Long.MIN_VALUE, результат будет равен значению Long.MIN_VALUE.
  • Если аргумент — положительная бесконечность или любое значение, большее либо равное значению Long.MAX_VALUE, результат будет равен значению Long.MAX_VALUE.
Параметры:
a — значение с плавающей точкой, которое нужно округлить до long.
Возвращает:
значение аргумента, округлённое до ближайшего значения long.
См. также:
  • Long.MAX_VALUE
  • Long.MIN_VALUE

random

public static double random()
Возвращает значение double с положительным знаком, большее или равное 0.0 и меньшее 1.0. Возвращаемые значения выбираются псевдослучайным образом с (приблизительно) равномерным распределением в этом диапазоне.

При первом вызове этого метода создаётся один новый генератор псевдослучайных чисел, в точности так же, как при вычислении выражения

new java.util.Random()
В дальнейшем этот новый генератор псевдослучайных чисел используется при всех вызовах данного метода и больше нигде.

Этот метод должным образом синхронизирован, что позволяет корректно использовать его из нескольких потоков. Однако если многим потокам требуется генерировать псевдослучайные числа с высокой частотой, уменьшить конкуренцию можно, если каждый поток будет использовать собственный генератор псевдослучайных чисел.

Возвращает:
псевдослучайное double, большее или равное 0.0 и меньшее 1.0.
См. также:
  • Random.nextDouble()

addExact

public static int addExact(int x, int y)
Возвращает сумму аргументов, генерируя исключение, если результат приводит к переполнению типа int.
Параметры:
x — первое значение
y — второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат приводит к переполнению типа int
С версии:
1.8
См. также:
  • Math.addExact(int,int)

addExact

public static long addExact(long x, long y)
Возвращает сумму аргументов, генерируя исключение, если результат приводит к переполнению типа long.
Параметры:
x — первое значение
y — второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат приводит к переполнению типа long
С версии:
1.8
См. также:
  • Math.addExact(long,long)

subtractExact

public static int subtractExact(int x, int y)
Возвращает разность аргументов, генерируя исключение, если результат приводит к переполнению типа int.
Параметры:
x — первое значение
y — второе значение, вычитаемое из первого
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат приводит к переполнению типа int
С версии:
1.8
См. также:
  • Math.subtractExact(int,int)

subtractExact

public static long subtractExact(long x, long y)
Возвращает разность аргументов, генерируя исключение, если результат приводит к переполнению типа long.
Параметры:
x — первое значение
y — второе значение, вычитаемое из первого
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат приводит к переполнению типа long
С версии:
1.8
См. также:
  • Math.subtractExact(long,long)

multiplyExact

public static int multiplyExact(int x, int y)
Возвращает произведение аргументов, генерируя исключение, если результат приводит к переполнению типа int.
Параметры:
x — первое значение
y — второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат приводит к переполнению типа int
С версии:
1.8
См. также:
  • Math.multiplyExact(int,int)

multiplyExact

public static long multiplyExact(long x, int y)
Возвращает произведение аргументов, генерируя исключение, если результат приводит к переполнению типа long.
Параметры:
x — первое значение
y — второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат приводит к переполнению типа long
С версии:
9
См. также:
  • Math.multiplyExact(long,int)

multiplyExact

public static long multiplyExact(long x, long y)
Возвращает произведение аргументов, выбрасывая исключение, если результат выходит за пределы long.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат выходит за пределы long
Начиная с:
1.8
См. также:
  • Math.multiplyExact(long,long)

divideExact

public static int divideExact(int x, int y)
Возвращает частное аргументов, выбрасывая исключение, если результат выходит за пределы int. В этом методе переполнение происходит, если x равно Integer.MIN_VALUE, а y равно -1. В отличие от этого, если непосредственно вычислить Integer.MIN_VALUE / -1, результатом будет Integer.MIN_VALUE и исключение выброшено не будет.

Если y равно нулю, выбрасывается ArithmeticException (JLS 15.17.2).

Встроенный оператор остатка «%» является подходящим аналогом как этого метода, так и встроенного оператора деления «/».

Параметры:
x - делимое
y - делитель
Возвращает:
частное x / y
Выбрасывает:
ArithmeticException - если y равно нулю или частное выходит за пределы int
См. Спецификацию языка Java:
15.17.2 Оператор деления /
Начиная с:
18
См. также:
  • Math.divideExact(int,int)

divideExact

public static long divideExact(long x, long y)
Возвращает частное аргументов, выбрасывая исключение, если результат выходит за пределы long. В этом методе переполнение происходит, если x равно Long.MIN_VALUE, а y равно -1. В отличие от этого, если непосредственно вычислить Long.MIN_VALUE / -1, результатом будет Long.MIN_VALUE и исключение выброшено не будет.

Если y равно нулю, выбрасывается ArithmeticException (JLS 15.17.2).

Встроенный оператор остатка «%» является подходящим аналогом как этого метода, так и встроенного оператора деления «/».

Параметры:
x - делимое
y - делитель
Возвращает:
частное x / y
Выбрасывает:
ArithmeticException - если y равно нулю или частное выходит за пределы long
См. Спецификацию языка Java:
15.17.2 Оператор деления /
Начиная с:
18
См. также:
  • Math.divideExact(long,long)

floorDivExact

public static int floorDivExact(int x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение int, которое меньше или равно алгебраическому частному. Этот метод идентичен floorDiv(int,int), за исключением того, что выбрасывает ArithmeticException, если делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Integer.MIN_VALUE.

Метод вычисления остатка по модулю пола floorMod(int,int) является подходящим аналогом как этого метода, так и метода floorDiv(int,int).

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.floorDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наибольшее (ближайшее к положительной бесконечности) значение int, которое меньше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю или делимое x равно Integer.MIN_VALUE, а делитель y равен -1.
Начиная с:
18
См. также:
  • Math.floorDiv(int, int)

floorDivExact

public static long floorDivExact(long x, long y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному. Этот метод идентичен floorDiv(long,long), за исключением того, что выбрасывает ArithmeticException, если делимое равно Long.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Long.MIN_VALUE.

Метод вычисления остатка по модулю пола floorMod(long,long) является подходящим аналогом как этого метода, так и метода floorDiv(long,long).

Примеры см. в описании Math.floorDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю или делимое x равно Long.MIN_VALUE, а делитель y равен -1.
Начиная с:
18
См. также:
  • Math.floorDiv(int, int)
  • Math.floorDiv(long,long)

ceilDivExact

public static int ceilDivExact(int x, int y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение int, которое больше или равно алгебраическому частному. Этот метод идентичен ceilDiv(int,int), за исключением того, что выбрасывает ArithmeticException, если делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Integer.MIN_VALUE.

Метод вычисления остатка по модулю потолка ceilMod(int,int) является подходящим аналогом как этого метода, так и метода ceilDiv(int,int).

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.ceilDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наименьшее (ближайшее к отрицательной бесконечности) значение int, которое больше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю или делимое x равно Integer.MIN_VALUE, а делитель y равен -1.
Начиная с:
18
См. также:
  • Math.ceilDiv(int, int)

ceilDivExact

public static long ceilDivExact(long x, long y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному. Этот метод идентичен ceilDiv(long,long), за исключением того, что выбрасывает ArithmeticException, если делимое равно Long.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Long.MIN_VALUE.

Метод вычисления остатка по модулю потолка ceilMod(long,long) является подходящим аналогом как этого метода, так и метода ceilDiv(long,long).

Примеры см. в описании Math.ceilDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю или делимое x равно Long.MIN_VALUE, а делитель y равен -1.
Начиная с:
18
См. также:
  • Math.ceilDiv(int, int)
  • Math.ceilDiv(long,long)

incrementExact

public static int incrementExact(int a)
Возвращает аргумент, увеличенный на единицу, выбрасывая исключение, если результат выходит за пределы int. Переполнение происходит только для максимального значения.
Параметры:
a - значение для увеличения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат выходит за пределы int
Начиная с:
14
См. также:
  • Math.incrementExact(int)

incrementExact

public static long incrementExact(long a)
Возвращает аргумент, увеличенный на единицу, выбрасывая исключение, если результат выходит за пределы long. Переполнение происходит только для максимального значения.
Параметры:
a - значение для увеличения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат выходит за пределы long
Начиная с:
14
См. также:
  • Math.incrementExact(long)

decrementExact

public static int decrementExact(int a)
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат выходит за пределы int. Переполнение происходит только для минимального значения.
Параметры:
a - значение для уменьшения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат выходит за пределы int
Начиная с:
14
См. также:
  • Math.decrementExact(int)

decrementExact

public static long decrementExact(long a)
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат выходит за пределы long. Переполнение происходит только для минимального значения.
Параметры:
a - значение для уменьшения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат выходит за пределы long
Начиная с:
14
См. также:
  • Math.decrementExact(long)

negateExact

public static int negateExact(int a)
Возвращает значение аргумента, умноженное на −1, выбрасывая исключение, если результат выходит за пределы int. Переполнение происходит только для минимального значения.
Параметры:
a - значение для смены знака
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат выходит за пределы int
Начиная с:
14
См. также:
  • Math.negateExact(int)

negateExact

public static long negateExact(long a)
Возвращает значение аргумента, умноженное на −1, выбрасывая исключение, если результат выходит за пределы long. Переполнение происходит только для минимального значения.
Параметры:
a - значение для смены знака
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат выходит за пределы long
Начиная с:
14
См. также:
  • Math.negateExact(long)

toIntExact

public static int toIntExact(long value)
Возвращает значение аргумента long, выбрасывая исключение, если значение выходит за пределы int.
Параметры:
value - значение типа long
Возвращает:
аргумент как значение типа int
Выбрасывает:
ArithmeticException - если argument выходит за пределы int
Начиная с:
1.8
См. также:
  • Math.toIntExact(long)

multiplyFull

public static long multiplyFull(int x, int y)
Возвращает точное математическое произведение аргументов.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Начиная с:
9
См. также:
  • Math.multiplyFull(int,int)

multiplyHigh

public static long multiplyHigh(long x, long y)
Возвращает в виде long 64 старших значащих бита 128-битного произведения двух 64-битных множителей.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Начиная с:
9
См. также:
  • unsignedMultiplyHigh(long, long)
  • Math.multiplyHigh(long,long)

unsignedMultiplyHigh

public static long unsignedMultiplyHigh(long x, long y)
Возвращает в виде long 64 старших значащих бита беззнакового 128-битного произведения двух беззнаковых 64-битных множителей.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Начиная с:
18
См. также:
  • multiplyHigh(long, long)
  • Math.unsignedMultiplyHigh(long,long)

floorDiv

public static int floorDiv(int x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение int, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Integer.MIN_VALUE, а делитель равен -1, происходит целочисленное переполнение, и результат равен Integer.MIN_VALUE.

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.floorDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наибольшее (ближайшее к положительной бесконечности) значение int, которое меньше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
1.8
См. также:
  • Math.floorDiv(int, int)
  • Math.floor(double)

floorDiv

public static long floorDiv(long x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, происходит целочисленное переполнение, и результат равен Long.MIN_VALUE.

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.floorDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
9
См. также:
  • Math.floorDiv(long, int)
  • Math.floor(double)

floorDiv

public static long floorDiv(long x, long y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, происходит целочисленное переполнение, и результат равен Long.MIN_VALUE.

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.floorDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
1.8
См. также:
  • Math.floorDiv(long, long)
  • Math.floor(double)

floorMod

public static int floorMod(int x, int y)
Возвращает остаток по модулю пола для аргументов int.

Остаток по модулю пола r = x - (floorDiv(x, y) * y) имеет тот же знак, что и делитель y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).

Связь между floorDiv и floorMod такова:

  • floorDiv(x, y) * y + floorMod(x, y) == x

Примеры и сравнение с оператором % см. в описании Math.floorMod.

Параметры:
x - делимое
y - делитель
Возвращает:
остаток по модулю пола x - (floorDiv(x, y) * y)
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
1.8
См. также:
  • Math.floorMod(int, int)
  • floorDiv(int, int)

floorMod

public static int floorMod(long x, int y)
Возвращает остаток по модулю пола для аргументов long и int.

Остаток по модулю пола r = x - (floorDiv(x, y) * y) имеет тот же знак, что и делитель y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).

Связь между floorDiv и floorMod такова:

  • floorDiv(x, y) * y + floorMod(x, y) == x

Примеры и сравнение с оператором % см. в описании Math.floorMod.

Параметры:
x - делимое
y - делитель
Возвращает:
остаток по модулю пола x - (floorDiv(x, y) * y)
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
9
См. также:
  • Math.floorMod(long, int)
  • floorDiv(long, int)

floorMod

public static long floorMod(long x, long y)
Возвращает остаток по модулю пола для аргументов long.

Остаток по модулю пола r = x - (floorDiv(x, y) * y) имеет тот же знак, что и делитель y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).

Связь между floorDiv и floorMod такова:

  • floorDiv(x, y) * y + floorMod(x, y) == x

Примеры и сравнение с оператором % см. в описании Math.floorMod.

Параметры:
x - делимое
y - делитель
Возвращает:
остаток по модулю пола x - (floorDiv(x, y) * y)
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
1.8
См. также:
  • Math.floorMod(long, long)
  • floorDiv(long, long)

ceilDiv

public static int ceilDiv(int x, int y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение int, которое больше или равно алгебраическому частному. Есть один особый случай: если делимое равно Integer.MIN_VALUE, а делитель равен -1, происходит целочисленное переполнение, и результат равен Integer.MIN_VALUE.

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.ceilDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наименьшее (ближайшее к отрицательной бесконечности) значение int, которое больше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
18
См. также:
  • Math.ceilDiv(int, int)
  • Math.ceil(double)

ceilDiv

public static long ceilDiv(long x, int y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному. Есть один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, происходит целочисленное переполнение, и результат равен Long.MIN_VALUE.

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.ceilDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
18
См. также:
  • Math.ceilDiv(long, int)
  • Math.ceil(double)

ceilDiv

public static long ceilDiv(long x, long y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному. Есть один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, происходит целочисленное переполнение, и результат равен Long.MIN_VALUE.

Примеры и сравнение с оператором целочисленного деления / см. в описании Math.ceilDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному.
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
18
См. также:
  • Math.ceilDiv(long, long)
  • Math.ceil(double)

ceilMod

public static int ceilMod(int x, int y)
Возвращает остаток по модулю потолка для аргументов int.

Остаток по модулю потолка r = x - (ceilDiv(x, y) * y) имеет знак, противоположный знаку делителя y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).

Связь между ceilDiv и ceilMod такова:

  • ceilDiv(x, y) * y + ceilMod(x, y) == x

Примеры и сравнение с оператором % см. в описании Math.ceilMod.

Параметры:
x - делимое
y - делитель
Возвращает:
остаток по модулю потолка x - (ceilDiv(x, y) * y)
Выбрасывает:
ArithmeticException - если делитель y равен нулю
Начиная с:
18
См. также:
  • Math.ceilMod(int, int)
  • ceilDiv(int, int)

ceilMod

public static int ceilMod(long x, int y)
Возвращает потолочный остаток от деления аргументов long и int.

Потолочный остаток от деления — это r = x - (ceilDiv(x, y) * y); он имеет знак, противоположный знаку делителя y, или равен нулю и находится в диапазоне -abs(y) < r < +abs(y).

Соотношение между ceilDiv и ceilMod таково:

  • ceilDiv(x, y) * y + ceilMod(x, y) == x

Примеры и сравнение с оператором % см. в разделе Math.ceilMod.

Параметры:
x — делимое
y — делитель
Возвращает:
потолочный остаток от деления x - (ceilDiv(x, y) * y)
Вызывает исключение:
ArithmeticException — если делитель y равен нулю
С версии:
18
См. также:
  • Math.ceilMod(long, int)
  • ceilDiv(long, int)

ceilMod

public static long ceilMod(long x, long y)
Возвращает потолочный остаток от деления аргументов long.

Потолочный остаток от деления — это r = x - (ceilDiv(x, y) * y); он имеет знак, противоположный знаку делителя y, или равен нулю и находится в диапазоне -abs(y) < r < +abs(y).

Соотношение между ceilDiv и ceilMod таково:

  • ceilDiv(x, y) * y + ceilMod(x, y) == x

Примеры и сравнение с оператором % см. в разделе Math.ceilMod.

Параметры:
x — делимое
y — делитель
Возвращает:
потолочный остаток от деления x - (ceilDiv(x, y) * y)
Вызывает исключение:
ArithmeticException — если делитель y равен нулю
С версии:
18
См. также:
  • Math.ceilMod(long, long)
  • ceilDiv(long, long)

abs

public static int abs(int a)
Возвращает абсолютное значение значения типа int. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается его противоположное значение.

Обратите внимание: если аргумент равен значению Integer.MIN_VALUE, то есть наименьшему представимому отрицательному значению типа int, результатом будет это же значение, которое является отрицательным. В отличие от него, метод absExact(int) для этого значения вызывает исключение ArithmeticException.

Параметры:
a — аргумент, абсолютное значение которого требуется определить.
Возвращает:
абсолютное значение аргумента.
См. также:
  • Math.absExact(int)

absExact

public static int absExact(int a)
Возвращает математическое абсолютное значение значения типа int, если оно точно представимо как int; если результат выходит за пределы положительного диапазона int, вызывает ArithmeticException.

Поскольку диапазон целых чисел в дополнительном коде несимметричен и содержит на одно отрицательное значение больше (JLS 4.2.1), математическое абсолютное значение Integer.MIN_VALUE выходит за пределы положительного диапазона int, поэтому для этого аргумента вызывается исключение.

Параметры:
a — аргумент, абсолютное значение которого требуется определить
Возвращает:
абсолютное значение аргумента, если не происходит переполнение
Вызывает исключение:
ArithmeticException — если аргумент равен Integer.MIN_VALUE
С версии:
15
См. также:
  • Math.abs(int)
  • Math.absExact(int)

abs

public static long abs(long a)
Возвращает абсолютное значение значения типа long. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается его противоположное значение.

Обратите внимание: если аргумент равен значению Long.MIN_VALUE, то есть наименьшему представимому отрицательному значению типа long, результатом будет это же значение, которое является отрицательным. В отличие от него, метод absExact(long) для этого значения вызывает исключение ArithmeticException.

Параметры:
a — аргумент, абсолютное значение которого требуется определить.
Возвращает:
абсолютное значение аргумента.
См. также:
  • Math.absExact(long)

absExact

public static long absExact(long a)
Возвращает математическое абсолютное значение значения типа long, если оно точно представимо как long; если результат выходит за пределы положительного диапазона long, вызывает ArithmeticException.

Поскольку диапазон целых чисел в дополнительном коде несимметричен и содержит на одно отрицательное значение больше (JLS 4.2.1), математическое абсолютное значение Long.MIN_VALUE выходит за пределы положительного диапазона long, поэтому для этого аргумента вызывается исключение.

Параметры:
a — аргумент, абсолютное значение которого требуется определить
Возвращает:
абсолютное значение аргумента, если не происходит переполнение
Вызывает исключение:
ArithmeticException — если аргумент равен Long.MIN_VALUE
С версии:
15
См. также:
  • Math.abs(long)
  • Math.absExact(long)

abs

public static float abs(float a)
Возвращает абсолютное значение значения типа float. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается его противоположное значение. Особые случаи:
  • Если аргумент равен положительному или отрицательному нулю, результатом будет положительный ноль.
  • Если аргумент бесконечен, результатом будет положительная бесконечность.
  • Если аргумент равен NaN, результатом будет NaN.
Примечание к API:
Как следует из приведенного выше, одним из допустимых вариантов реализации этого метода является приведенное ниже выражение, которое вычисляет float с той же экспонентой и значащей частью, что и аргумент, но с гарантированно нулевым битом знака, указывающим на положительное значение:
Float.intBitsToFloat(0x7fffffff & Float.floatToRawIntBits(a))
Параметры:
a — аргумент, абсолютное значение которого требуется определить
Возвращает:
абсолютное значение аргумента.

abs

public static double abs(double a)
Возвращает абсолютное значение значения типа double. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается его противоположное значение. Особые случаи:
  • Если аргумент равен положительному или отрицательному нулю, результатом будет положительный ноль.
  • Если аргумент бесконечен, результатом будет положительная бесконечность.
  • Если аргумент равен NaN, результатом будет NaN.
Примечание к API:
Как следует из приведенного выше, одним из допустимых вариантов реализации этого метода является приведенное ниже выражение, которое вычисляет double с той же экспонентой и значащей частью, что и аргумент, но с гарантированно нулевым битом знака, указывающим на положительное значение:
Double.longBitsToDouble((Double.doubleToRawLongBits(a)<<1)>>>1)
Параметры:
a — аргумент, абсолютное значение которого требуется определить
Возвращает:
абсолютное значение аргумента.

max

public static int max(int a, int b)
Возвращает большее из двух значений типа int. То есть результатом является аргумент, более близкий к значению Integer.MAX_VALUE. Если аргументы имеют одинаковое значение, возвращается это же значение.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
большее из значений a и b.

max

public static long max(long a, long b)
Возвращает большее из двух значений типа long. То есть результатом является аргумент, более близкий к значению Long.MAX_VALUE. Если аргументы имеют одинаковое значение, возвращается это же значение.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
большее из значений a и b.

max

public static float max(float a, float b)
Возвращает большее из двух значений типа float. То есть результатом является аргумент, более близкий к положительной бесконечности. Если аргументы имеют одинаковое значение, возвращается это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов числового сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет положительный ноль.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
большее из значений a и b.

max

public static double max(double a, double b)
Возвращает большее из двух значений типа double. То есть результатом является аргумент, более близкий к положительной бесконечности. Если аргументы имеют одинаковое значение, возвращается это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов числового сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет положительный ноль.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
большее из значений a и b.

min

public static int min(int a, int b)
Возвращает меньшее из двух значений типа int. То есть результатом является аргумент, более близкий к значению Integer.MIN_VALUE. Если аргументы имеют одинаковое значение, возвращается это же значение.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
меньшее из значений a и b.

min

public static long min(long a, long b)
Возвращает меньшее из двух значений типа long. То есть результатом является аргумент, более близкий к значению Long.MIN_VALUE. Если аргументы имеют одинаковое значение, возвращается это же значение.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
меньшее из значений a и b.

min

public static float min(float a, float b)
Возвращает меньшее из двух значений типа float. То есть результатом является значение, более близкое к отрицательной бесконечности. Если аргументы имеют одинаковое значение, возвращается это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов числового сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет отрицательный ноль.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
меньшее из значений a и b.

min

public static double min(double a, double b)
Возвращает меньшее из двух значений типа double. То есть результатом является значение, более близкое к отрицательной бесконечности. Если аргументы имеют одинаковое значение, возвращается это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов числового сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет отрицательный ноль.
Параметры:
a — аргумент.
b — другой аргумент.
Возвращает:
меньшее из значений a и b.

clamp

public static int clamp(long value, int min, int max)
Ограничивает значение диапазоном от min до max. Если значение меньше min, возвращается min. Если значение больше max, возвращается max. В противном случае возвращается исходное значение.

Исходное значение типа long может не помещаться в тип int, однако границы имеют тип int, поэтому результат всегда помещается в тип int. Это позволяет безопасно преобразовывать значение типа long в int с насыщением с помощью этого метода.

Параметры:
value — ограничиваемое значение
min — минимально допустимое значение
max — максимально допустимое значение
Возвращает:
ограниченное значение, входящее в интервал min..max
Вызывает исключение:
IllegalArgumentException — если min > max
С версии:
21

clamp

public static long clamp(long value, long min, long max)
Ограничивает значение диапазоном от min до max. Если значение меньше min, возвращается min. Если значение больше max, возвращается max. В противном случае возвращается исходное значение.
Параметры:
value — ограничиваемое значение
min — минимально допустимое значение
max — максимально допустимое значение
Возвращает:
ограниченное значение, входящее в интервал min..max
Вызывает исключение:
IllegalArgumentException — если min > max
С версии:
21

clamp

public static double clamp(double value, double min, double max)
Ограничивает значение диапазоном от min до max. Если значение меньше min, возвращается min. Если значение больше max, возвращается max. В противном случае возвращается исходное значение. Если значение равно NaN, результатом также будет NaN.

В отличие от операторов числового сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Например, clamp(-0.0, 0.0, 1.0) возвращает 0.0.

Параметры:
value — ограничиваемое значение
min — минимально допустимое значение
max — максимально допустимое значение
Возвращает:
ограниченное значение, входящее в интервал min..max
Вызывает исключение:
IllegalArgumentException — если один из аргументов min и max равен NaN, или min > max, или min равен +0.0, а max равен -0.0.
С версии:
21

clamp

public static float clamp(float value, float min, float max)
Ограничивает значение диапазоном от min до max. Если значение меньше min, возвращается min. Если значение больше max, возвращается max. В противном случае возвращается исходное значение. Если значение равно NaN, результатом также будет NaN.

В отличие от операторов числового сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Например, clamp(-0.0f, 0.0f, 1.0f) возвращает 0.0f.

Параметры:
value — ограничиваемое значение
min — минимально допустимое значение
max — максимально допустимое значение
Возвращает:
ограниченное значение, входящее в интервал min..max
Вызывает исключение:
IllegalArgumentException — если один из аргументов min и max равен NaN, или min > max, или min равен +0.0f, а max равен -0.0f.
С версии:
21

fma

public static double fma(double a, double b, double c)
Возвращает результат слитого умножения с последующим сложением трех аргументов, то есть точное произведение первых двух аргументов, сложенное с третьим аргументом, после чего результат однократно округляется до ближайшего значения double. Округление выполняется в соответствии с режимом округления до ближайшего четного. В отличие от этого, при вычислении a * b + c как обычного выражения с плавающей точкой происходят две ошибки округления: первая при умножении, вторая при сложении.

Особые случаи:

  • Если какой-либо аргумент равен NaN, результатом будет NaN.
  • Если один из первых двух аргументов бесконечен, а другой равен нулю, результатом будет NaN.
  • Если точное произведение первых двух аргументов бесконечно (иными словами, по крайней мере один из аргументов бесконечен, а другой не равен ни нулю, ни NaN) и третий аргумент — бесконечность противоположного знака, результатом будет NaN.

Обратите внимание: fusedMac(a, 1.0, c) возвращает тот же результат, что и (a + c). Однако fusedMac(a, b, +0.0) не всегда возвращает тот же результат, что и (a * b), поскольку fusedMac(-0.0, +0.0, +0.0) — это +0.0, тогда как (-0.0 * +0.0) — это -0.0; однако fusedMac(a, b, -0.0) эквивалентно (a * b).

Примечание к API:
Этот метод соответствует операции fusedMultiplyAdd, определенной в IEEE 754-2008.
Параметры:
a — значение
b — значение
c — значение
Возвращает:
(a × b + c), вычисленное как при неограниченных диапазоне и точности и однократно округленное до ближайшего значения double
С версии:
9

fma

public static float fma(float a, float b, float c)
Возвращает результат слитого умножения с последующим сложением трех аргументов, то есть точное произведение первых двух аргументов, сложенное с третьим аргументом, после чего результат однократно округляется до ближайшего значения float. Округление выполняется в соответствии с режимом округления до ближайшего четного. В отличие от этого, при вычислении a * b + c как обычного выражения с плавающей точкой происходят две ошибки округления: первая при умножении, вторая при сложении.

Особые случаи:

  • Если какой-либо аргумент равен NaN, результатом будет NaN.
  • Если один из первых двух аргументов бесконечен, а другой равен нулю, результатом будет NaN.
  • Если точное произведение первых двух аргументов бесконечно (иными словами, по крайней мере один из аргументов бесконечен, а другой не равен ни нулю, ни NaN) и третий аргумент — бесконечность противоположного знака, результатом будет NaN.

Обратите внимание: fma(a, 1.0f, c) возвращает тот же результат, что и (a + c). Однако fma(a, b, +0.0f) не всегда возвращает тот же результат, что и (a * b), поскольку fma(-0.0f, +0.0f, +0.0f) — это +0.0f, тогда как (-0.0f * +0.0f) — это -0.0f; однако fma(a, b, -0.0f) эквивалентно (a * b).

Примечание к API:
Этот метод соответствует операции fusedMultiplyAdd, определенной в IEEE 754-2008.
Параметры:
a — значение
b — значение
c — значение
Возвращает:
(a × b + c), вычисленное как при неограниченных диапазоне и точности и однократно округленное до ближайшего значения float
С версии:
9

ulp

public static double ulp(double d)
Возвращает размер ulp аргумента. ULP (unit in the last place, единица последнего разряда) значения типа double — это положительное расстояние между этим значением с плавающей точкой и следующим по величине значением double. Обратите внимание, что для любого x, не равного NaN, ulp(-x) == ulp(x).

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительной или отрицательной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен положительному или отрицательному нулю, результатом будет Double.MIN_VALUE.
  • Если аргумент равен ±Double.MAX_VALUE, результат равен 2971.
Параметры:
d — значение с плавающей точкой, для которого требуется вернуть ulp
Возвращает:
размер ulp аргумента
С версии:
1.5

ulp

public static float ulp(float f)
Возвращает размер ulp аргумента. ULP (unit in the last place, единица последнего разряда) значения типа float — это положительное расстояние между этим значением с плавающей точкой и следующим по величине значением float. Обратите внимание, что для любого x, не равного NaN, ulp(-x) == ulp(x).

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительной или отрицательной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен положительному или отрицательному нулю, результатом будет Float.MIN_VALUE.
  • Если аргумент равен ±Float.MAX_VALUE, результат равен 2104.
Параметры:
f — значение с плавающей точкой, для которого требуется вернуть ulp
Возвращает:
размер ulp аргумента
С версии:
1.5

signum

public static double signum(double d)
Возвращает функцию signum аргумента: ноль, если аргумент равен нулю; 1.0, если аргумент больше нуля; -1.0, если аргумент меньше нуля.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительному или отрицательному нулю, результатом будет сам аргумент.
Параметры:
d — значение с плавающей точкой, для которого требуется вернуть signum
Возвращает:
функция signum аргумента
С версии:
1.5

signum

public static float signum(float f)
Возвращает функцию signum аргумента: ноль, если аргумент равен нулю; 1.0f, если аргумент больше нуля; -1.0f, если аргумент меньше нуля.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительному или отрицательному нулю, результатом будет сам аргумент.
Параметры:
f — значение с плавающей точкой, для которого требуется вернуть signum
Возвращает:
функция signum аргумента
С версии:
1.5

sinh

public static double sinh(double x)
Возвращает гиперболический синус значения типа double. Гиперболический синус x определяется как (ex − e−x)/2, где e — число Эйлера.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент бесконечен, результатом будет бесконечность того же знака, что и аргумент.
  • Если аргумент равен нулю, результатом будет ноль того же знака, что и аргумент.
Параметры:
x — число, для которого требуется вернуть гиперболический синус.
Возвращает:
гиперболический синус x.
С версии:
1.5

cosh

public static double cosh(double x)
Возвращает гиперболический косинус значения типа double. Гиперболический косинус x определяется как (ex + e−x)/2, где e — число Эйлера.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент бесконечен, результатом будет положительная бесконечность.
  • Если аргумент равен нулю, результатом будет 1.0.
Параметры:
x — число, для которого требуется вернуть гиперболический косинус.
Возвращает:
гиперболический косинус x.
С версии:
1.5

tanh

public static double tanh(double x)
Возвращает гиперболический тангенс значения типа double. Гиперболический тангенс x определяется как (ex − e−x)/(ex + e−x), иначе говоря, sinh(x)/cosh(x). Обратите внимание, что абсолютное значение точного tanh всегда меньше 1.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен нулю, результатом будет ноль того же знака, что и аргумент.
  • Если аргумент равен положительной бесконечности, результатом будет +1.0.
  • Если аргумент равен отрицательной бесконечности, результатом будет -1.0.
Параметры:
x — число, для которого требуется вернуть гиперболический тангенс.
Возвращает:
гиперболический тангенс x.
С версии:
1.5

hypot

public static double hypot(double x, double y)
Возвращает sqrt(x2 +y2) без промежуточного переполнения или потери значимости.

Особые случаи:

  • Если любой из аргументов бесконечен, результатом будет положительная бесконечность.
  • Если любой из аргументов равен NaN и ни один из аргументов не бесконечен, результатом будет NaN.
  • Если оба аргумента равны нулю, результатом будет положительный ноль.
Параметры:
x — значение
y — значение
Возвращает:
sqrt(x2 +y2) без промежуточного переполнения или потери значимости
Начиная с:
1.5

expm1

public static double expm1(double x)
Возвращает ex −1. Обратите внимание, что для значений x, близких к 0, точная сумма expm1(x) + 1 гораздо ближе к истинному значению ex, чем exp(x).

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен отрицательной бесконечности, результатом будет -1.0.
  • Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
Параметры:
x — показатель степени, в которую возводится e при вычислении ex −1.
Возвращает:
значение ex - 1.
Начиная с:
1.5

log1p

public static double log1p(double x)
Возвращает натуральный логарифм суммы аргумента и 1. Обратите внимание, что для малых значений x результат log1p(x) гораздо ближе к истинному значению ln(1 + x), чем результат вычисления с плавающей точкой log(1.0+x).

Особые случаи:

  • Если аргумент равен NaN или меньше -1, результатом будет NaN.
  • Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен отрицательной единице, результатом будет отрицательная бесконечность.
  • Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
Параметры:
x — значение
Возвращает:
значение ln(x + 1), натуральный логарифм x + 1
Начиная с:
1.5

copySign

public static double copySign(double magnitude, double sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой. Для этого метода аргумент sign, равный NaN, всегда рассматривается как положительный.
Параметры:
magnitude — параметр, задающий модуль результата
sign — параметр, задающий знак результата
Возвращает:
значение с модулем magnitude и знаком sign.
Начиная с:
1.6

copySign

public static float copySign(float magnitude, float sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой. Для этого метода аргумент sign, равный NaN, всегда рассматривается как положительный.
Параметры:
magnitude — параметр, задающий модуль результата
sign — параметр, задающий знак результата
Возвращает:
значение с модулем magnitude и знаком sign.
Начиная с:
1.6

getExponent

public static int getExponent(float f)
Возвращает смещённый показатель степени, используемый в представлении значения float. Особые случаи:
  • Если аргумент равен NaN или бесконечности, результатом будет Float.MAX_EXPONENT + 1.
  • Если аргумент равен нулю или является субнормальным, результатом будет Float.MIN_EXPONENT -1.
Параметры:
f — значение типа float
Возвращает:
несмещённый показатель степени аргумента
Начиная с:
1.6

getExponent

public static int getExponent(double d)
Возвращает смещённый показатель степени, используемый в представлении значения double. Особые случаи:
  • Если аргумент равен NaN или бесконечности, результатом будет Double.MAX_EXPONENT + 1.
  • Если аргумент равен нулю или является субнормальным, результатом будет Double.MIN_EXPONENT -1.
Параметры:
d — значение типа double
Возвращает:
несмещённый показатель степени аргумента
Начиная с:
1.6

nextAfter

public static double nextAfter(double start, double direction)
Возвращает число с плавающей точкой, соседнее с первым аргументом в направлении второго аргумента. Если оба аргумента сравниваются как равные, возвращается второй аргумент.

Особые случаи:

  • Если любой из аргументов равен NaN, возвращается NaN.
  • Если оба аргумента являются знаковыми нулями, direction возвращается без изменений (как следует из требования возвращать второй аргумент, если аргументы сравниваются как равные).
  • Если start равен ±Double.MIN_VALUE, а direction имеет такое значение, что результат должен иметь меньший модуль, возвращается ноль с тем же знаком, что и у start.
  • Если start бесконечен, а direction имеет такое значение, что результат должен иметь меньший модуль, возвращается Double.MAX_VALUE с тем же знаком, что и у start.
  • Если start равен ± Double.MAX_VALUE, а direction имеет такое значение, что результат должен иметь больший модуль, возвращается бесконечность с тем же знаком, что и у start.
Параметры:
start — начальное значение с плавающей точкой
direction — значение, указывающее, какого из соседних значений start или самого start следует вернуть
Возвращает:
Число с плавающей точкой, соседнее с start в направлении direction.
Начиная с:
1.6

nextAfter

public static float nextAfter(float start, double direction)
Возвращает число с плавающей точкой, соседнее с первым аргументом в направлении второго аргумента. Если оба аргумента сравниваются как равные, возвращается значение, эквивалентное второму аргументу.

Особые случаи:

  • Если любой из аргументов равен NaN, возвращается NaN.
  • Если оба аргумента являются знаковыми нулями, возвращается значение, эквивалентное direction.
  • Если start равен ±Float.MIN_VALUE, а direction имеет такое значение, что результат должен иметь меньший модуль, возвращается ноль с тем же знаком, что и у start.
  • Если start бесконечен, а direction имеет такое значение, что результат должен иметь меньший модуль, возвращается Float.MAX_VALUE с тем же знаком, что и у start.
  • Если start равен ± Float.MAX_VALUE, а direction имеет такое значение, что результат должен иметь больший модуль, возвращается бесконечность с тем же знаком, что и у start.
Параметры:
start — начальное значение с плавающей точкой
direction — значение, указывающее, какого из соседних значений start или самого start следует вернуть
Возвращает:
Число с плавающей точкой, соседнее с start в направлении direction.
Начиная с:
1.6

nextUp

public static double nextUp(double d)
Возвращает значение с плавающей точкой, соседнее с d в направлении положительной бесконечности. Семантически этот метод эквивалентен nextAfter(d, Double.POSITIVE_INFINITY); однако реализация nextUp может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен нулю, результатом будет Double.MIN_VALUE
Параметры:
d — начальное значение с плавающей точкой
Возвращает:
Соседнее значение с плавающей точкой, более близкое к положительной бесконечности.
Начиная с:
1.6

nextUp

public static float nextUp(float f)
Возвращает значение с плавающей точкой, соседнее с f в направлении положительной бесконечности. Семантически этот метод эквивалентен nextAfter(f, Float.POSITIVE_INFINITY); однако реализация nextUp может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен нулю, результатом будет Float.MIN_VALUE
Параметры:
f — начальное значение с плавающей точкой
Возвращает:
Соседнее значение с плавающей точкой, более близкое к положительной бесконечности.
Начиная с:
1.6

nextDown

public static double nextDown(double d)
Возвращает значение с плавающей точкой, соседнее с d в направлении отрицательной бесконечности. Семантически этот метод эквивалентен nextAfter(d, Double.NEGATIVE_INFINITY); однако реализация nextDown может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен отрицательной бесконечности, результатом будет отрицательная бесконечность.
  • Если аргумент равен нулю, результатом будет -Double.MIN_VALUE
Параметры:
d — начальное значение с плавающей точкой
Возвращает:
Соседнее значение с плавающей точкой, более близкое к отрицательной бесконечности.
Начиная с:
1.8

nextDown

public static float nextDown(float f)
Возвращает значение с плавающей точкой, соседнее с f в направлении отрицательной бесконечности. Семантически этот метод эквивалентен nextAfter(f, Float.NEGATIVE_INFINITY); однако реализация nextDown может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен отрицательной бесконечности, результатом будет отрицательная бесконечность.
  • Если аргумент равен нулю, результатом будет -Float.MIN_VALUE
Параметры:
f — начальное значение с плавающей точкой
Возвращает:
Соседнее значение с плавающей точкой, более близкое к отрицательной бесконечности.
Начиная с:
1.8

scalb

public static double scalb(double d, int scaleFactor)
Возвращает d × 2scaleFactor, округлённое так, как если бы вычисление выполнялось одним умножением чисел с плавающей точкой с корректным округлением. Если показатель степени результата находится в диапазоне от Double.MIN_EXPONENT до Double.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата превышает Double.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является субнормальным, точность может быть потеряна; то есть, когда scalb(x, n) является субнормальным, scalb(scalb(x, n), -n) может не равняться x. Если результат не равен NaN, он имеет тот же знак, что и d.

Особые случаи:

  • Если первый аргумент равен NaN, возвращается NaN.
  • Если первый аргумент бесконечен, возвращается бесконечность с тем же знаком.
  • Если первый аргумент равен нулю, возвращается ноль с тем же знаком.
Параметры:
d — число, которое нужно умножить на степень двойки.
scaleFactor — степень числа 2, используемая для масштабирования d
Возвращает:
d × 2scaleFactor
Начиная с:
1.6

scalb

public static float scalb(float f, int scaleFactor)
Возвращает f × 2scaleFactor, округлённое так, как если бы вычисление выполнялось одним умножением чисел с плавающей точкой с корректным округлением. Если показатель степени результата находится в диапазоне от Float.MIN_EXPONENT до Float.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата превышает Float.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является субнормальным, точность может быть потеряна; то есть, когда scalb(x, n) является субнормальным, scalb(scalb(x, n), -n) может не равняться x. Если результат не равен NaN, он имеет тот же знак, что и f.

Особые случаи:

  • Если первый аргумент равен NaN, возвращается NaN.
  • Если первый аргумент бесконечен, возвращается бесконечность с тем же знаком.
  • Если первый аргумент равен нулю, возвращается ноль с тем же знаком.
Параметры:
f — число, которое нужно умножить на степень двойки.
scaleFactor — степень числа 2, используемая для масштабирования f
Возвращает:
f × 2scaleFactor
Начиная с:
1.6

unsignedMultiplyExact

public static int unsignedMultiplyExact(int x, int y)
Возвращает произведение беззнаковых аргументов; если результат выходит за диапазон беззнакового int, выбрасывается исключение.
Параметры:
x — первое беззнаковое значение
y — второе беззнаковое значение
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат выходит за диапазон беззнакового int
Начиная с:
25

unsignedMultiplyExact

public static long unsignedMultiplyExact(long x, int y)
Возвращает произведение беззнаковых аргументов; если результат выходит за диапазон беззнакового long, выбрасывается исключение.
Параметры:
x — первое беззнаковое значение
y — второе беззнаковое значение
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат выходит за диапазон беззнакового long
Начиная с:
25

unsignedMultiplyExact

public static long unsignedMultiplyExact(long x, long y)
Возвращает произведение беззнаковых аргументов; если результат выходит за диапазон беззнакового long, выбрасывается исключение.
Параметры:
x — первое беззнаковое значение
y — второе беззнаковое значение
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат выходит за диапазон беззнакового long
Начиная с:
25

powExact

public static int powExact(int x, int n)
Возвращает x в степени n; если результат выходит за диапазон int, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.
Параметры:
x — основание.
n — показатель степени.
Возвращает:
x в степени n.
Выбрасывает:
ArithmeticException — если n отрицательно или результат выходит за диапазон int.
Начиная с:
25

unsignedPowExact

public static int unsignedPowExact(int x, int n)
Возвращает беззнаковое x в степени n; если результат выходит за диапазон беззнакового int, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.
Параметры:
x — беззнаковое основание.
n — показатель степени.
Возвращает:
x в степени n.
Выбрасывает:
ArithmeticException — если n отрицательно или результат выходит за диапазон беззнакового int.
Начиная с:
25

powExact

public static long powExact(long x, int n)
Возвращает x в степени n; если результат выходит за диапазон long, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.
Параметры:
x — основание.
n — показатель степени.
Возвращает:
x в степени n.
Выбрасывает:
ArithmeticException — если n отрицательно или результат выходит за диапазон long.
Начиная с:
25

unsignedPowExact

public static long unsignedPowExact(long x, int n)
Возвращает беззнаковое x в степени n; если результат выходит за диапазон беззнакового long, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.
Параметры:
x — беззнаковое основание.
n — показатель степени.
Возвращает:
x в степени n.
Выбрасывает:
ArithmeticException — если n отрицательно или результат выходит за диапазон беззнакового long.
Начиная с:
25

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/StrictMath.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API