Spec-Zone.ru › OpenJDK 27

Класс 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 определена относительно версии fdlibm 5.3 с исправлением для pow, чтобы её границы погрешности соответствовали критериям качества реализации для pow. Если в fdlibm для функции предусмотрено несколько определений (например, для acos), используйте версию «основной функции IEEE 754» (расположенную в файле, имя которого начинается с буквы e). Методы, для которых требуется семантика fdlibm: sin, cos, tan, asin, acos, atan, exp, log, log10, cbrt, atan2, pow, sinh, cosh, tanh, asinh, acosh,atanh, 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 double acosh(double x)
Возвращает обратный гиперболический косинус значения типа double.
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 asinh(double x)
Возвращает обратный гиперболический синус значения типа double.
static double atan(double a)
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2.
static double atan2(double y, double x)
Возвращает угол theta, полученный при преобразовании декартовых координат (x, y) в полярные координаты (r, theta).
static double atanh(double x)
Возвращает обратный гиперболический тангенс значения типа double.
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)
Возвращает значение функции signum для аргумента: ноль, если аргумент равен нулю; 1.0, если он больше нуля; −1.0, если он меньше нуля.
static float signum(float f)
Возвращает значение функции signum для аргумента: ноль, если аргумент равен нулю; 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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в одной из будущих версий.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

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)
Возвращает значение, противоположное аргументу, выбрасывая исключение, если результат переполняет int. Переполнение происходит только для минимального значения.
Параметры:
a — значение, которое нужно инвертировать
Возвращает:
результат
Выбрасывает:
ArithmeticException — если результат переполняет int
Начиная с версии:
14
См. также:
  • Math.negateExact(int)

negateExact

public static long negateExact(long a)
Возвращает значение, противоположное аргументу, выбрасывая исключение, если результат переполняет 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. Обратите внимание: для неравного NaN x выполняется 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. Обратите внимание: для неравного NaN x выполняется 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)
Возвращает значение знаковой функции аргумента: ноль, если аргумент равен нулю; 1.0, если аргумент больше нуля; −1.0, если аргумент меньше нуля.

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

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

signum

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

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

  • Если аргумент равен NaN, результатом будет NaN.
  • Если аргумент равен положительному или отрицательному нулю, результатом будет сам аргумент.
Параметры:
f — значение с плавающей точкой, для которого требуется вернуть значение знаковой функции
Возвращает:
значение знаковой функции аргумента
Начиная с:
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

asinh

public static double asinh(double x)
Возвращает обратный гиперболический синус значения типа double. Обратный гиперболический синус x определяется как функция, для которой asinh(sinh(x)) = x при любом x. Обратите внимание, что область определения и область значений точной функции asinh не ограничены.

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

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

acosh

public static double acosh(double x)
Возвращает обратный гиперболический косинус значения типа double. Обратный гиперболический косинус x определяется как функция, для которой acosh(cosh(x)) = x при любом x >= 0. Обратите внимание, что область значений точной функции acosh(x) — >= 0.

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

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

atanh

public static double atanh(double x)
Возвращает обратный гиперболический тангенс значения типа double. Обратный гиперболический тангенс x определяется как функция, для которой atanh(tanh(x)) = x при любом x. Обратите внимание, что область определения точной функции atanh — (-1; 1), а область значений не ограничена.

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

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

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, 2026, 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.

Spec-Zone.ru

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