Spec-Zone.ru › OpenJDK 24

Класс 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. Где fdlibm предоставляет более одного определения для функции (например, acos), используется версия "основной функции IEEE 754" (расположенная в файле, имя которого начинается с буквы e). Методы, которые требуют fdlibm семантики, это sin, cos, tan, asin, acos, atan, exp, log, log10, cbrt, atan2, pow, sinh, cosh, tanh, hypot, expm1 и log1p.

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

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

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

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

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

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

Модификатор и тип Метод Описание
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, вызывая ArithmeticException, если результат выходит за пределы положительного диапазона int.
static long absExact(long a)
Возвращает математическое абсолютное значение значения long, если оно точно представимо как long, вызывая ArithmeticException, если результат выходит за пределы положительного диапазона long.
static double acos(double a)
Возвращает арккосинус значения; возвращаемый угол находится в диапазоне от 0,0 до pi.
static int addExact(int x, int y)
Возвращает сумму аргументов, вызывая исключение, если результат выходит за пределы int.
static long addExact(long x, long y)
Возвращает сумму аргументов, вызывая исключение, если результат выходит за пределы long.
static double asin(double a)
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2.
static double atan(double a)
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2.
static double atan2(double y, double x)
Возвращает угол theta из преобразования прямоугольных координат (x, y) в полярные координаты (r, theta).
static double cbrt(double a)
Возвращает кубический корень из значения double.
static double ceil(double a)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение double, которое больше или равно аргументу и равно целому числу.
static int ceilDiv(int x, int y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение int, которое больше или равно алгебраическому частному.
static long ceilDiv(long x, int y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному.
static long ceilDiv(long x, long y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному.
static int ceilDivExact(int x, int y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение int, которое больше или равно алгебраическому частному.
static long ceilDivExact(long x, long y)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение long, которое больше или равно алгебраическому частному.
static int ceilMod(int x, int y)
Возвращает модуль потолка аргументов int.
static int ceilMod(long x, int y)
Возвращает модуль потолка аргументов long и int.
static long ceilMod(long x, long y)
Возвращает модуль потолка аргументов long.
static double clamp(double value, double min, double max)
Ограничивает значение в пределах от min до max.
static float clamp(float value, float min, float max)
Ограничивает значение в пределах от min до max.
static int clamp(long value, int min, int max)
Ограничивает значение в пределах от min до max.
static long clamp(long value, long min, long max)
Ограничивает значение в пределах от min до max.
static double copySign(double magnitude, double sign)
Возвращает первый с плавающей точкой аргумент со знаком второго с плавающей точкой аргумента.
static float copySign(float magnitude, float sign)
Возвращает первый с плавающей точкой аргумент со знаком второго с плавающей точкой аргумента.
static double cos(double a)
Возвращает тригонометрический косинус угла.
static double cosh(double x)
Возвращает гиперболический косинус значения double.
static int decrementExact(int a)
Возвращает аргумент, уменьшенный на единицу, вызывая исключение, если результат выходит за пределы int.
static long decrementExact(long a)
Возвращает аргумент, уменьшенный на единицу, вызывая исключение, если результат выходит за пределы long.
static int divideExact(int x, int y)
Возвращает частное аргументов, вызывая исключение, если результат выходит за пределы int.
static long divideExact(long x, long y)
Возвращает частное аргументов, вызывая исключение, если результат выходит за пределы long.
static double exp(double a)
Возвращает число Эйлера e, возведённое в степень значения double.
static double expm1(double x)
Возвращает ex −1.
static double floor(double a)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение double, которое меньше или равно аргументу и равно целому числу.
static int floorDiv(int x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение int, которое меньше или равно алгебраическому частному.
static long floorDiv(long x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
static long floorDiv(long x, long y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
static int floorDivExact(int x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение int, которое меньше или равно алгебраическому частному.
static long floorDivExact(long x, long y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
static int floorMod(int x, int y)
Возвращает модуль пола аргументов int.
static int floorMod(long x, int y)
Возвращает модуль пола аргументов long и int.
static long floorMod(long x, long y)
Возвращает модуль пола аргументов long.
static double fma(double a, double b, double c)
Возвращает Fused Multiply-Add (произведение-сумма) трёх аргументов; то есть возвращает точное произведение первых двух аргументов, сложенное с третьим аргументом, и затем один раз округляется к ближайшему значению double.
static float fma(float a, float b, float c)
Возвращает Fused Multiply-Add (произведение-сумма) трёх аргументов; то есть возвращает точное произведение первых двух аргументов, сложенное с третьим аргументом, и затем один раз округляется к ближайшему значению float.
static int getExponent(double d)
Возвращает несмещённый экспонент, используемый в представлении значения double.
static int getExponent(float f)
Возвращает несмещённый экспонент, используемый в представлении значения float.
static double hypot(double x, double y)
Возвращает sqrt(x2 +y2) без промежуточного переполнения или потери точности.
END_OF_DOCUMENT_MARKER
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)
Возвращает логарифм по основанию 10 значения 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 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 long unsignedMultiplyHigh(long x, long y)
Возвращает как long самые старшие 64 бита беззнакового 128-битного произведения двух беззнаковых 64-битных множителей.

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

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

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

E

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

PI

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

TAU

public static final double TAU
Значение, наиболее близкое к 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, возведенное в степень значения. Особые случаи:
  • Если аргумент NaN, результат NaN.
  • Если аргумент положительная бесконечность, результат положительная бесконечность.
  • Если аргумент отрицательная бесконечность, результат положительный ноль.
  • Если аргумент равен нулю, результат равен 1.0.
Параметры:
a - показатель степени, к которому нужно возвести e.
Возвращает:
значение ea, где e — основание натуральных логарифмов.

log

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

log10

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

sqrt

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

cbrt

public static double cbrt(double a)
Возвращает кубический корень из значения. Для положительных конечных значений 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.
  • Если первый аргумент — положительный ноль, а второй аргумент — положительный, или первый аргумент — положительный и конечный, а второй аргумент — положительная бесконечность, то результат — положительный ноль.
  • Если первый аргумент — отрицательный ноль, а второй аргумент — положительный, или первый аргумент — отрицательный и конечный, а второй аргумент — положительная бесконечность, то результат — отрицательный ноль.
  • Если первый аргумент — положительный ноль, а второй аргумент — отрицательный, или первый аргумент — положительный и конечный, а второй аргумент — отрицательная бесконечность, то результат — значение, наиболее близкое к pi.
  • Если первый аргумент — отрицательный ноль, а второй аргумент — отрицательный, или первый аргумент — отрицательный и конечный, а второй аргумент — отрицательная бесконечность, то результат — значение, наиболее близкое к -pi.
  • Если первый аргумент — положительный, а второй аргумент — положительный или отрицательный ноль, или первый аргумент — положительная бесконечность, а второй аргумент — конечный, то результат — значение, наиболее близкое к pi/2.
  • Если первый аргумент — отрицательный, а второй аргумент — положительный или отрицательный ноль, или первый аргумент — отрицательная бесконечность, а второй аргумент — конечный, то результат — значение, наиболее близкое к -pi/2.
  • Если оба аргумента — положительная бесконечность, то результат — значение, наиболее близкое к pi/4.
  • Если первый аргумент — положительная бесконечность, а второй аргумент — отрицательная бесконечность, то результат — значение, наиболее близкое к 3*pi/4.
  • Если первый аргумент — отрицательная бесконечность, а второй аргумент — положительная бесконечность, то результат — значение, наиболее близкое к -pi/4.
  • Если оба аргумента — отрицательная бесконечность, то результат — значение, наиболее близкое к -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 Note:
Определения специальных случаев этого метода отличаются от определений специальных случаев рекомендованной IEEE 754 pow операции для ±1.0, возведённых в бесконечную степень. Этот метод рассматривает такие случаи как неопределённые и задаёт возврат NaN. Спецификация IEEE 754 рассматривает бесконечную степень как большое целое число (числа с плавающей запятой большой величины являются численно целыми числами, конкретно чётными целыми числами) и поэтому задаёт возврат 1.0.
Parameters:
a - основание.
b - показатель степени.
Returns:
значение ab.

round

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

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

  • Если аргумент равен NaN, результат равен 0.
  • Если аргумент равен отрицательной бесконечности или любому значению, меньше или равно значению Integer.MIN_VALUE, результат равен значению Integer.MIN_VALUE.
  • Если аргумент равен положительной бесконечности или любому значению, больше или равно значению Integer.MAX_VALUE, результат равен значению Integer.MAX_VALUE.
Parameters:
a - значение с плавающей запятой, подлежащее округлению до целого числа.
Returns:
значение аргумента, округлённое до ближайшего 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.
Parameters:
a - значение с плавающей запятой, подлежащее округлению до long.
Returns:
значение аргумента, округлённое до ближайшего long значения.
См. также:
  • Long.MAX_VALUE
  • Long.MIN_VALUE

random

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

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

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

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

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

addExact

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

addExact

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

subtractExact

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

subtractExact

public static long subtractExact(long x, long y)
Возвращает разность аргументов, вызывая исключение, если результат выходит за пределы long.
Parameters:
x - первое значение
y - второе значение, которое вычитается из первого
Returns:
результат
Throws:
ArithmeticException - если результат выходит за пределы long
Since:
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)
Возвращает наибольшее (ближайшее к положительной бесконечности) целое значение, которое меньше или равно алгебраическому частному. Этот метод идентичен floorDiv(int,int), за исключением того, что он выбрасывает ArithmeticException, когда делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того, чтобы игнорировать переполнение и возвращать Integer.MIN_VALUE.

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

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

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

floorDivExact

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

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

Для примеров см. Math.floorDiv.

Параметры:
x - делимое
y - делитель
Возвращает:
наибольшее (ближайшее к положительной бесконечности) целое значение, которое меньше или равно алгебраическому частному.
Исключения:
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)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) целое значение, которое больше или равно алгебраическому частному. Этот метод идентичен ceilDiv(int,int), за исключением того, что он выбрасывает ArithmeticException, когда делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того, чтобы игнорировать переполнение и возвращать Integer.MIN_VALUE.

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

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

Параметры:
x - делимое
y - делитель
Возвращает:
наименьшее (ближайшее к отрицательной бесконечности) целое значение, которое больше или равно алгебраическому частному.
Исключения:
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.

Метод ceil модуля 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 для примеров и сравнения с оператором целочисленного деления /.

Parameters:
x - делимое
y - делитель
Returns:
наибольшее (ближайшее к положительной бесконечности) long значение, которое меньше или равно алгебраическому частному.
Throws:
ArithmeticException - если делитель y равен нулю
Since:
1.8
See Also:
  • Math.floorDiv(long, long)
  • Math.floor(double)

floorMod

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

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

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

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

См. Math.floorMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу floor x - (floorDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
1.8
See Also:
  • Math.floorMod(int, int)
  • floorDiv(int, int)

floorMod

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

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

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

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

См. Math.floorMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу floor x - (floorDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
9
See Also:
  • Math.floorMod(long, int)
  • floorDiv(long, int)

floorMod

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

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

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

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

См. Math.floorMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу floor x - (floorDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
1.8
See Also:
  • 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 для примеров и сравнения с оператором целочисленного деления /.

Parameters:
x - делимое
y - делитель
Returns:
наименьшее (ближайшее к отрицательной бесконечности) int значение, которое больше или равно алгебраическому частному.
Throws:
ArithmeticException - если делитель y равен нулю
Since:
18
See Also:
  • 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 для примеров и сравнения с оператором целочисленного деления /.

Parameters:
x - делимое
y - делитель
Returns:
наименьшее (ближайшее к отрицательной бесконечности) long значение, которое больше или равно алгебраическому частному.
Throws:
ArithmeticException - если делитель y равен нулю
Since:
18
See Also:
  • 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 для примеров и сравнения с оператором целочисленного деления /.

Parameters:
x - делимое
y - делитель
Returns:
наименьшее (ближайшее к отрицательной бесконечности) long значение, которое больше или равно алгебраическому частному.
Throws:
ArithmeticException - если делитель y равен нулю
Since:
18
See Also:
  • Math.ceilDiv(long, long)
  • Math.ceil(double)

ceilMod

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

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

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

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

См. Math.ceilMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу ceiling x - (ceilDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
18
See Also:
  • Math.ceilMod(int, int)
  • ceilDiv(int, int)

ceilMod

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

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

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

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

См. Math.ceilMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу ceiling x - (ceilDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
18
See Also:
  • Math.ceilMod(long, int)
  • ceilDiv(long, int)

ceilMod

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

Модуль потолка определяется как 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)
Возвращает абсолютное значение целого значения. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается отрицание аргумента.

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

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

absExact

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

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

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

abs

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

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

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

absExact

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

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

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

abs

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

abs

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

max

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

max

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

max

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

max

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

min

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

min

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

min

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

min

public static double min(double a, double b)
Возвращает меньшее из двух значений. То есть, результатом является значение, более близкое к отрицательной бесконечности. Если аргументы имеют одинаковое значение, результатом является это же значение. Если какое-либо из значений является 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)
Возвращает результат операции умножения-сложения (fused multiply-add) трех аргументов; то есть, возвращает точный результат произведения первых двух аргументов, к которому прибавлено третье значение, и результат затем округляется один раз до ближайшего double значения. Округление выполняется с использованием режима округления до ближайшего четного round to nearest even rounding mode. В отличие от того, как операция 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)
Возвращает результат операции умножения-сложения (fused multiply-add) трех аргументов; то есть, возвращает точный результат произведения первых двух аргументов, к которому прибавлено третье значение, и результат затем округляется один раз до ближайшего float значения. Округление выполняется с использованием режима округления до ближайшего четного round to nearest even rounding mode. В отличие от того, как операция 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 (единица в последнем разряде) для значения с плавающей запятой — это положительное расстояние между этим значением с плавающей запятой и следующим значением с плавающей запятой большей величины. Обратите внимание, что для x, не являющегося NaN, ulp(-x) == ulp(x).

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

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

ulp

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

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

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

signum

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

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

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

signum

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

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

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

sinh

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

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

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

cosh

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

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

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

tanh

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

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

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

hypot

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

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

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

expm1

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

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

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

log1p

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

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

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

copySign

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

copySign

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

getExponent

public static int getExponent(float f)
Возвращает несмещённый показатель степени, используемый в представлении значения с плавающей запятой. Особые случаи:
  • Если аргумент NaN или бесконечен, результат — Float.MAX_EXPONENT + 1.
  • Если аргумент равен нулю или поднормализован, результат — Float.MIN_EXPONENT -1.
Параметры:
f — значение с плавающей запятой
Возвращает:
несмещённый показатель степени аргумента
С:
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 - степень двойки, используемая для масштабирования 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 - степень двойки, используемая для масштабирования f
Возвращает:
f × 2scaleFactor
С:
1.6

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

Spec-Zone.ru

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