Spec-Zone.ru › OpenJDK 21

Класс 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 до π.
static int addExact(int x, int y)
Возвращает сумму аргументов, выбрасывая исключение, если результат переполняет int.
static long addExact(long x, long y)
Возвращает сумму аргументов, выбрасывая исключение, если результат переполняет long.
static double asin(double a)
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от -π/2 до π/2.
static double atan(double a)
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от -π/2 до π/2.
static double atan2(double y, double x)
Возвращает угол θ из преобразования прямоугольных координат (x, y) в полярные координаты (r, θ).
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)
Возвращает логарифм по основанию 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, возведенное в степень 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 значения. Особые случаи:
  • Если аргумент — NaN или меньше нуля, результат — NaN.
  • Если аргумент — положительная бесконечность, результат — положительная бесконечность.
  • Если аргумент — положительный или отрицательный ноль, результат — отрицательная бесконечность.
  • Если аргумент равен 10n для целого n, результат — n. В частности, если аргумент — 1.0 (100), результат — положительный ноль.
Параметры:
a - значение
Возвращает:
десятичный логарифм a.
С:
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).
Parameters:
a - значение.
Returns:
наименьшее (ближайшее к отрицательной бесконечности) значение с плавающей запятой, которое больше или равно аргументу и равно математическому целому числу.

floor

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

rint

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

atan2

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

Метод floor modulus 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.

Метод floor modulus 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.

Метод ceil modulus 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.

Метод ceil modulus 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)
Возвращает остаток от деления по методу 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 для примеров и сравнения с оператором %.

Параметры:
x - делимое
y - делитель
Возвращает:
остаток от деления по методу floor 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)
Возвращает остаток от деления по методу 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 для примеров и сравнения с оператором %.

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

floorMod

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

Остаток по методу 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 для примеров и сравнения с оператором %.

Параметры:
x - делимое
y - делитель
Возвращает:
остаток от деления по методу floor 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)
Возвращает остаток от деления с округлением вверх аргументов.

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

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

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

absExact

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

Поскольку диапазон целых чисел со знаком дополнительного кода несимметричен с одним дополнительным отрицательным значением (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, если оно точно представимо как целое число, выбрасывая ArithmeticException если результат превышает положительный диапазон long.

Поскольку диапазон целых чисел со знаком дополнительного кода несимметричен с одним дополнительным отрицательным значением (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 Note:
Как следует из вышесказанного, одно из допустимых реализаций этого метода задается выражением ниже, которое вычисляет float с тем же показателем и мантиссой, что и аргумент, но с гарантированным нулевым битом знака, указывающим на положительное значение:
Float.intBitsToFloat(0x7fffffff & Float.floatToRawIntBits(a))
Параметры:
a - аргумент, абсолютное значение которого требуется определить
Возвращает:
абсолютное значение аргумента.

abs

public static double abs(double a)
Возвращает абсолютное значение double значения. Если аргумент не отрицательный, возвращается аргумент. Если аргумент отрицательный, возвращается отрицание аргумента. Особые случаи:
  • Если аргумент равен положительному или отрицательному нулю, результат равен положительному нулю.
  • Если аргумент бесконечен, результат равен положительной бесконечности.
  • Если аргумент NaN, результат равен NaN.
API Note:
Как следует из вышесказанного, одно из допустимых реализаций этого метода задается выражением ниже, которое вычисляет 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
END_OF_DOCUMENT_MARKER

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. Округление выполняется с использованием режима округления до ближайшего чётного. В отличие от этого, если 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. Округление выполняется с использованием режима округления до ближайшего чётного. В отличие от этого, если 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, единица в последнем разряде, для значения с плавающей точкой double — это положительное расстояние между этим значением с плавающей точкой и следующим double значением с большей величиной. Обратите внимание, что для x, не равного NaN, ulp(-x) == ulp(x).

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

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

ulp

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

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

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

signum

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

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

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

signum

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

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

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

sinh

public static double sinh(double x)
Возвращает гиперболический синус значения с плавающей точкой. Гиперболический синус 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
END_OF_DOCUMENT_MARKER

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)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой. В этом методе NaN sign аргумент всегда обрабатывается как положительный.
Параметры:
magnitude - параметр, определяющий модуль результата
sign - параметр, определяющий знак результата
Возвращает:
значение с модулем magnitude и знаком sign.
С:
1.6

copySign

public static float copySign(float magnitude, float sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой. Для этого метода NaN sign аргумент всегда обрабатывается как положительный.
Параметры:
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 - степень двойки, используемая для масштабирования 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, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/StrictMath.html

Spec-Zone.ru

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