Класс StrictMath
public final class StrictMath extends Object
StrictMath содержит методы для выполнения базовых числовых операций, таких как элементарные экспоненциальные, логарифмические, тригонометрические функции и извлечение квадратного корня. Чтобы обеспечить переносимость программ на Java, определения некоторых числовых функций в этом пакете требуют, чтобы они давали те же результаты, что и определённые опубликованные алгоритмы. Эти алгоритмы доступны в известной сетевой библиотеке netlib как пакет «Freely Distributable Math Library», fdlibm. Следует считать, что эти алгоритмы, написанные на языке программирования C, транслитерированы на Java и выполняются с соблюдением правил арифметики Java для всех операций с плавающей точкой и целочисленных операций. При транслитерации используются следующие преобразования:
- Извлечение и установка старшей и младшей половин 64-разрядного
doubleв C выражается с помощью методов платформы Java, выполняющих побитовые преобразования изdoubleвlongи изlongвdouble. - Беззнаковые значения
intв C сопоставляются со знаковыми значениямиintв Java; операции обновляются для воспроизведения беззнаковой семантики там, где результаты одной и той же текстовой операции различались бы. Например, сдвиги>>для беззнаковых значений C заменяются сдвигами>>>для знаковых значений Java. Сравнения заданной разрядности для беззнаковых значений C (<,<=,>,>=) заменяются семантически эквивалентными вызовамиcompareUnsigned.
Математическая библиотека Java определена относительно версии fdlibm 5.3 с исправлением для pow, чтобы её границы погрешности соответствовали критериям качества реализации для pow. Если в fdlibm для функции предусмотрено несколько определений (например, для acos), используйте версию «основной функции IEEE 754» (расположенную в файле, имя которого начинается с буквы e). Методы, для которых требуется семантика fdlibm: sin, cos, tan, asin, acos, atan, exp, log, log10, cbrt, atan2, pow, sinh, cosh, tanh, asinh, acosh,atanh, hypot, expm1 и log1p.
На платформе используется арифметика целых чисел в дополнительном коде со знаковыми примитивными типами int и long. Разработчику следует выбрать примитивный тип так, чтобы арифметические операции всегда давали правильные результаты; в некоторых случаях это означает, что операции не должны выходить за диапазон значений вычисления. Рекомендуется выбирать примитивный тип и алгоритм, позволяющие избежать переполнения. Если размер равен int или long и необходимо обнаруживать ошибки переполнения, методы, имена которых заканчиваются на Exact, выбрасывают ArithmeticException при переполнении результата.
Рекомендуемые операции IEEE 754
В классеMath рассматривается, как общие критерии качества реализации для выбранных методов Math и StrictMath соотносятся с рекомендуемыми операциями IEEE 754.- Начиная с:
- 1.3
- Внешние спецификации
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final double |
E |
Значение double, наиболее близкое к e — основанию натуральных логарифмов. |
static final double |
PI |
Значение double, наиболее близкое к pi (π) — отношению длины окружности к её диаметру. |
static final double |
TAU |
Значение double, наиболее близкое к tau (τ) — отношению длины окружности к её радиусу. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static double |
abs |
Возвращает абсолютное значение значения типа double. |
static float |
abs |
Возвращает абсолютное значение значения типа float. |
static int |
abs |
Возвращает абсолютное значение значения типа int. |
static long |
abs |
Возвращает абсолютное значение значения типа long. |
static int |
absExact |
Возвращает математическое абсолютное значение значения типа int, если оно точно представимо как int; если результат выходит за пределы положительного диапазона int, выбрасывается исключение ArithmeticException. |
static long |
absExact |
Возвращает математическое абсолютное значение значения типа long, если оно точно представимо как long; если результат выходит за пределы положительного диапазона long, выбрасывается исключение ArithmeticException. |
static double |
acos |
Возвращает арккосинус значения; возвращаемый угол находится в диапазоне от 0.0 до pi. |
static double |
acosh |
Возвращает обратный гиперболический косинус значения типа double. |
static int |
addExact |
Возвращает сумму аргументов; если результат выходит за пределы типа int, выбрасывается исключение. |
static long |
addExact |
Возвращает сумму аргументов; если результат выходит за пределы типа long, выбрасывается исключение. |
static double |
asin |
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2. |
static double |
asinh |
Возвращает обратный гиперболический синус значения типа double. |
static double |
atan |
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2. |
static double |
atan2 |
Возвращает угол theta, полученный при преобразовании декартовых координат ( x, y) в полярные координаты (r, theta). |
static double |
atanh |
Возвращает обратный гиперболический тангенс значения типа double. |
static double |
cbrt |
Возвращает кубический корень значения типа double. |
static double |
ceil |
Возвращает наименьшее (ближайшее к минус бесконечности) значение типа double, которое больше аргумента или равно ему и является математическим целым числом. |
static int |
ceilDiv |
Возвращает наименьшее (ближайшее к минус бесконечности) значение типа int, которое больше алгебраического частного или равно ему. |
static long |
ceilDiv |
Возвращает наименьшее (ближайшее к минус бесконечности) значение типа long, которое больше алгебраического частного или равно ему. |
static long |
ceilDiv |
Возвращает наименьшее (ближайшее к минус бесконечности) значение типа long, которое больше алгебраического частного или равно ему. |
static int |
ceilDivExact |
Возвращает наименьшее (ближайшее к минус бесконечности) значение типа int, которое больше алгебраического частного или равно ему. |
static long |
ceilDivExact |
Возвращает наименьшее (ближайшее к минус бесконечности) значение типа long, которое больше алгебраического частного или равно ему. |
static int |
ceilMod |
Возвращает остаток от деления с округлением частного вверх для аргументов типа int. |
static int |
ceilMod |
Возвращает остаток от деления с округлением частного вверх для аргументов типа long и int. |
static long |
ceilMod |
Возвращает остаток от деления с округлением частного вверх для аргументов типа long. |
static double |
clamp |
Ограничивает значение диапазоном от min до max. |
static float |
clamp |
Ограничивает значение диапазоном от min до max. |
static int |
clamp |
Ограничивает значение диапазоном от min до max. |
static long |
clamp |
Ограничивает значение диапазоном от min до max. |
static double |
copySign |
Возвращает первый аргумент с плавающей точкой и знаком второго аргумента с плавающей точкой. |
static float |
copySign |
Возвращает первый аргумент с плавающей точкой и знаком второго аргумента с плавающей точкой. |
static double |
cos |
Возвращает тригонометрический косинус угла. |
static double |
cosh |
Возвращает гиперболический косинус значения типа double. |
static int |
decrementExact |
Возвращает аргумент, уменьшенный на единицу; если результат выходит за пределы типа int, выбрасывается исключение. |
static long |
decrementExact |
Возвращает аргумент, уменьшенный на единицу; если результат выходит за пределы типа long, выбрасывается исключение. |
static int |
divideExact |
Возвращает частное аргументов; если результат выходит за пределы типа int, выбрасывается исключение. |
static long |
divideExact |
Возвращает частное аргументов; если результат выходит за пределы типа long, выбрасывается исключение. |
static double |
exp |
Возводит число Эйлера e в степень, заданную значением типа double, и возвращает результат. |
static double |
expm1 |
Возвращает ex −1. |
static double |
floor |
Возвращает наибольшее (ближайшее к плюс бесконечности) значение типа double, которое меньше аргумента или равно ему и является математическим целым числом. |
static int |
floorDiv |
Возвращает наибольшее (ближайшее к плюс бесконечности) значение типа int, которое меньше алгебраического частного или равно ему. |
static long |
floorDiv |
Возвращает наибольшее (ближайшее к плюс бесконечности) значение типа long, которое меньше алгебраического частного или равно ему. |
static long |
floorDiv |
Возвращает наибольшее (ближайшее к плюс бесконечности) значение типа long, которое меньше алгебраического частного или равно ему. |
static int |
floorDivExact |
Возвращает наибольшее (ближайшее к плюс бесконечности) значение типа int, которое меньше алгебраического частного или равно ему. |
static long |
floorDivExact |
Возвращает наибольшее (ближайшее к плюс бесконечности) значение типа long, которое меньше алгебраического частного или равно ему. |
static int |
floorMod |
Возвращает остаток от деления с округлением частного вниз для аргументов типа int. |
static int |
floorMod |
Возвращает остаток от деления с округлением частного вниз для аргументов типа long и int. |
static long |
floorMod |
Возвращает остаток от деления с округлением частного вниз для аргументов типа long. |
static double |
fma |
Выполняет слитное умножение и сложение трёх аргументов: возвращает точное произведение первых двух аргументов, сложенное с третьим аргументом, после чего округляет результат один раз до ближайшего значения double. |
static float |
fma |
Выполняет слитное умножение и сложение трёх аргументов: возвращает точное произведение первых двух аргументов, сложенное с третьим аргументом, после чего округляет результат один раз до ближайшего значения float. |
static int |
getExponent |
Возвращает несмещённый показатель степени, используемый в представлении значения типа double. |
static int |
getExponent |
Возвращает несмещённый показатель степени, используемый в представлении значения типа float. |
static double |
hypot |
Возвращает sqrt(x2 +y2) без промежуточного переполнения или потери точности из-за антипереполнения. |
static double |
IEEEremainder |
Вычисляет остаток от деления двух аргументов согласно стандарту IEEE 754. |
static int |
incrementExact |
Возвращает аргумент, увеличенный на единицу; если результат выходит за пределы типа int, выбрасывается исключение. |
static long |
incrementExact |
Возвращает аргумент, увеличенный на единицу; если результат выходит за пределы типа long, выбрасывается исключение. |
static double |
log |
Возвращает натуральный логарифм (по основанию e) значения типа double. |
static double |
log10 |
Возвращает десятичный логарифм значения типа double. |
static double |
log1p |
Возвращает натуральный логарифм суммы аргумента и 1. |
static double |
max |
Возвращает большее из двух значений типа double. |
static float |
max |
Возвращает большее из двух значений типа float. |
static int |
max |
Возвращает большее из двух значений типа int. |
static long |
max |
Возвращает большее из двух значений типа long. |
static double |
min |
Возвращает меньшее из двух значений типа double. |
static float |
min |
Возвращает меньшее из двух значений типа float. |
static int |
min |
Возвращает меньшее из двух значений типа int. |
static long |
min |
Возвращает меньшее из двух значений типа long. |
static int |
multiplyExact |
Возвращает произведение аргументов; если результат выходит за пределы типа int, выбрасывается исключение. |
static long |
multiplyExact |
Возвращает произведение аргументов; если результат выходит за пределы типа long, выбрасывается исключение. |
static long |
multiplyExact |
Возвращает произведение аргументов; если результат выходит за пределы типа long, выбрасывается исключение. |
static long |
multiplyFull |
Возвращает точное математическое произведение аргументов. |
static long |
multiplyHigh |
Возвращает в виде long старшие 64 бита 128-битного произведения двух 64-битных множителей. |
static int |
negateExact |
Возвращает значение аргумента с противоположным знаком; если результат выходит за пределы типа int, выбрасывается исключение. |
static long |
negateExact |
Возвращает значение аргумента с противоположным знаком; если результат выходит за пределы типа long, выбрасывается исключение. |
static double |
nextAfter |
Возвращает число с плавающей точкой, соседнее с первым аргументом в направлении второго аргумента. |
static float |
nextAfter |
Возвращает число с плавающей точкой, соседнее с первым аргументом в направлении второго аргумента. |
static double |
nextDown |
Возвращает значение с плавающей точкой, соседнее с d в направлении минус бесконечности. |
static float |
nextDown |
Возвращает значение с плавающей точкой, соседнее с f в направлении минус бесконечности. |
static double |
nextUp |
Возвращает значение с плавающей точкой, соседнее с d в направлении плюс бесконечности. |
static float |
nextUp |
Возвращает значение с плавающей точкой, соседнее с f в направлении плюс бесконечности. |
static double |
pow |
Возвращает значение первого аргумента, возведённое в степень второго аргумента. |
static int |
powExact |
Возводит x в степень n и возвращает результат; если он выходит за пределы типа int, выбрасывается исключение. |
static long |
powExact |
Возводит x в степень n и возвращает результат; если он выходит за пределы типа long, выбрасывается исключение. |
static double |
random() |
Возвращает значение типа double с положительным знаком, не меньше 0.0 и меньше 1.0. |
static double |
rint |
Возвращает значение типа double, ближайшее к аргументу и являющееся математическим целым числом. |
static long |
round |
Возвращает ближайшее к аргументу значение типа long; при равном удалении округляет в сторону плюс бесконечности. |
static int |
round |
Возвращает ближайшее к аргументу значение типа int; при равном удалении округляет в сторону плюс бесконечности. |
static double |
scalb |
Возвращает d × 2scaleFactor, округлённое так, как если бы операция выполнялась одним умножением с плавающей точкой и корректным округлением. |
static float |
scalb |
Возвращает f × 2scaleFactor, округлённое так, как если бы операция выполнялась одним умножением с плавающей точкой и корректным округлением. |
static double |
signum |
Возвращает значение функции signum для аргумента: ноль, если аргумент равен нулю; 1.0, если он больше нуля; −1.0, если он меньше нуля. |
static float |
signum |
Возвращает значение функции signum для аргумента: ноль, если аргумент равен нулю; 1.0f, если он больше нуля; −1.0f, если он меньше нуля. |
static double |
sin |
Возвращает тригонометрический синус угла. |
static double |
sinh |
Возвращает гиперболический синус значения типа double. |
static double |
sqrt |
Возвращает корректно округлённый положительный квадратный корень значения типа double. |
static int |
subtractExact |
Возвращает разность аргументов; если результат выходит за пределы типа int, выбрасывается исключение. |
static long |
subtractExact |
Возвращает разность аргументов; если результат выходит за пределы типа long, выбрасывается исключение. |
static double |
tan |
Возвращает тригонометрический тангенс угла. |
static double |
tanh |
Возвращает гиперболический тангенс значения типа double. |
static double |
toDegrees |
Преобразует угол, измеренный в радианах, в приблизительно эквивалентный угол, измеренный в градусах. |
static int |
toIntExact |
Возвращает значение аргумента типа long; если оно выходит за пределы типа int, выбрасывается исключение. |
static double |
toRadians |
Преобразует угол, измеренный в градусах, в приблизительно эквивалентный угол, измеренный в радианах. |
static double |
ulp |
Возвращает размер ulp аргумента. |
static float |
ulp |
Возвращает размер ulp аргумента. |
static int |
unsignedMultiplyExact |
Возвращает произведение беззнаковых аргументов; если результат выходит за пределы беззнакового типа int, выбрасывается исключение. |
static long |
unsignedMultiplyExact |
Возвращает произведение беззнаковых аргументов; если результат выходит за пределы беззнакового типа long, выбрасывается исключение. |
static long |
unsignedMultiplyExact |
Возвращает произведение беззнаковых аргументов; если результат выходит за пределы беззнакового типа long, выбрасывается исключение. |
static long |
unsignedMultiplyHigh |
Возвращает в виде long старшие 64 бита беззнакового 128-битного произведения двух беззнаковых 64-битных множителей. |
static int |
unsignedPowExact |
Возводит беззнаковое значение x в степень n и возвращает результат; если он выходит за пределы беззнакового типа int, выбрасывается исключение. |
static long |
unsignedPowExact |
Возводит беззнаковое значение x в степень n и возвращает результат; если он выходит за пределы беззнакового типа long, выбрасывается исключение. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удалён в одной из будущих версий. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
E
public static final double E
double, наиболее близкое к e — основанию натуральных логарифмов.- См. также:
PI
public static final double PI
double, наиболее близкое к pi (π) — отношению длины окружности к её диаметру.- См. также:
TAU
public static final double TAU
double, наиболее близкое к tau (τ) — отношению длины окружности к её радиусу.- Примечание к API:
- Значение pi вдвое меньше значения tau; другими словами, tau вдвое больше pi .
- Начиная с версии:
- 19
- См. также:
Подробное описание методов
sin
public static double sin(double a)
- Если аргумент равен NaN или бесконечности, результат равен NaN.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Параметры:
-
a— угол в радианах. - Возвращает:
- синус аргумента.
cos
public static double cos(double a)
- Если аргумент равен NaN или бесконечности, результат равен NaN.
- Если аргумент равен нулю, результат равен
1.0.
- Параметры:
-
a— угол в радианах. - Возвращает:
- косинус аргумента.
tan
public static double tan(double a)
- Если аргумент равен NaN или бесконечности, результат равен NaN.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Параметры:
-
a— угол в радианах. - Возвращает:
- тангенс аргумента.
asin
public static double asin(double a)
- Если аргумент равен NaN или его абсолютное значение больше 1, результат равен NaN.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Параметры:
-
a— значение, арксинус которого нужно вернуть. - Возвращает:
- арксинус аргумента.
acos
public static double acos(double a)
- Если аргумент равен NaN или его абсолютное значение больше 1, результат равен NaN.
- Если аргумент равен
1.0, результатом будет положительный ноль.
- Параметры:
-
a— значение, арккосинус которого нужно вернуть. - Возвращает:
- арккосинус аргумента.
atan
public static double atan(double a)
- Если аргумент равен 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)
double значения. Особые случаи: - Если аргумент равен NaN, результат равен NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен отрицательной бесконечности, результатом будет положительный ноль.
- Если аргумент равен нулю, результат равен
1.0.
- Параметры:
-
a— показатель степени для e. - Возвращает:
- значение e
a, где e — основание натуральных логарифмов.
log
public static double log(double a)
double значения. Особые случаи: - Если аргумент равен NaN или меньше нуля, результат равен NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен положительному или отрицательному нулю, результатом будет отрицательная бесконечность.
- Если аргумент равен
1.0, результатом будет положительный ноль.
- Параметры:
-
a— значение - Возвращает:
- значение ln
a, натуральный логарифмa.
log10
public static double log10(double a)
double значения по основанию 10. Особые случаи: - Если аргумент равен NaN или меньше нуля, результат равен NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен положительному или отрицательному нулю, результатом будет отрицательная бесконечность.
- Если аргумент равен 10n для целого числа n, результат равен n. В частности, если аргумент равен
1.0(100), результатом будет положительный ноль.
- Параметры:
-
a— значение - Возвращает:
- логарифм
aпо основанию 10. - Начиная с версии:
- 1.5
sqrt
public static double sqrt(double a)
double значения. Особые случаи: - Если аргумент равен NaN или меньше нуля, результат равен NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен положительному или отрицательному нулю, результат совпадает с аргументом.
double значение, ближайшее к истинному математическому квадратному корню из значения аргумента.- Параметры:
-
a— значение. - Возвращает:
- положительный квадратный корень из
a.
cbrt
public static double cbrt(double a)
double значения. Для положительных конечных значений x, cbrt(-x) ==
-cbrt(x); то есть кубический корень из отрицательного значения равен отрицательному кубическому корню из его абсолютного значения. Особые случаи: - Если аргумент равен NaN, результат равен NaN.
- Если аргумент бесконечен, результатом будет бесконечность с тем же знаком, что и у аргумента.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Параметры:
-
a— значение. - Возвращает:
- кубический корень из
a. - Начиная с версии:
- 1.5
IEEEremainder
public static double IEEEremainder(double f1, double f2)
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)
x, y) в полярные координаты (r, theta). Этот метод вычисляет фазу theta как арктангенс y/x в диапазоне от −pi до pi. Особые случаи: - Если любой из аргументов равен NaN, результат равен NaN.
- Если первый аргумент равен положительному нулю, а второй аргумент положителен, либо первый аргумент является положительным конечным числом, а второй равен положительной бесконечности, результатом будет положительный ноль.
- Если первый аргумент равен отрицательному нулю, а второй аргумент положителен, либо первый аргумент является отрицательным конечным числом, а второй равен положительной бесконечности, результатом будет отрицательный ноль.
- Если первый аргумент равен положительному нулю, а второй аргумент отрицателен, либо первый аргумент является положительным конечным числом, а второй равен отрицательной бесконечности, результатом будет значение
double, ближайшее к pi. - Если первый аргумент равен отрицательному нулю, а второй аргумент отрицателен, либо первый аргумент является отрицательным конечным числом, а второй равен отрицательной бесконечности, результатом будет значение
double, ближайшее к -pi. - Если первый аргумент положителен, а второй аргумент равен положительному или отрицательному нулю, либо первый аргумент равен положительной бесконечности, а второй аргумент конечен, результатом будет значение
double, ближайшее к pi/2. - Если первый аргумент отрицателен, а второй аргумент равен положительному или отрицательному нулю, либо первый аргумент равен отрицательной бесконечности, а второй аргумент конечен, результатом будет значение
double, ближайшее к -pi/2. - Если оба аргумента равны положительной бесконечности, результатом будет значение
double, ближайшее к pi/4. - Если первый аргумент равен положительной бесконечности, а второй — отрицательной бесконечности, результатом будет значение
double, ближайшее к 3*pi/4. - Если первый аргумент равен отрицательной бесконечности, а второй — положительной бесконечности, результатом будет значение
double, ближайшее к -pi/4. - Если оба аргумента равны отрицательной бесконечности, результатом будет значение
double, ближайшее к -3*pi/4.
- Примечание к API:
- Для y с положительным знаком и конечного ненулевого x точное математическое значение
atan2равно:- если x > 0, atan(abs(y/x))
- если x < 0, π - atan(abs(y/x))
- Параметры:
-
y— координата ординаты -
x— координата абсциссы - Возвращает:
- компоненту theta точки (r, theta) в полярных координатах, соответствующую точке (x, y) в декартовых координатах.
pow
public static double pow(double a, double b)
- Если второй аргумент равен положительному или отрицательному нулю, результат равен 1.0.
- Если второй аргумент равен 1.0, результат совпадает с первым аргументом.
- Если второй аргумент равен NaN, результат равен NaN.
- Если первый аргумент равен NaN, а второй аргумент ненулевой, результат равен NaN.
- Если
- абсолютное значение первого аргумента больше 1, а второй аргумент равен положительной бесконечности, или
- абсолютное значение первого аргумента меньше 1, а второй аргумент равен отрицательной бесконечности,
- Если
- абсолютное значение первого аргумента больше 1, а второй аргумент равен отрицательной бесконечности, или
- абсолютное значение первого аргумента меньше 1, а второй аргумент равен положительной бесконечности,
- Если абсолютное значение первого аргумента равно 1, а второй аргумент бесконечен, результат равен NaN.
- Если
- первый аргумент равен положительному нулю, а второй аргумент больше нуля, или
- первый аргумент равен положительной бесконечности, а второй аргумент меньше нуля,
- Если
- первый аргумент равен положительному нулю, а второй аргумент меньше нуля, или
- первый аргумент равен положительной бесконечности, а второй аргумент больше нуля,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент больше нуля, но не является конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент меньше нуля, но не является конечным нечётным целым числом,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент является положительным конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент является отрицательным конечным нечётным целым числом,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент меньше нуля, но не является конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент больше нуля, но не является конечным нечётным целым числом,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент является отрицательным конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент является положительным конечным нечётным целым числом,
- Если первый аргумент конечен и меньше нуля,
- если второй аргумент является конечным чётным целым числом, результат равен результату возведения абсолютного значения первого аргумента во вторую степень
- если второй аргумент является конечным нечётным целым числом, результат равен отрицательному результату возведения абсолютного значения первого аргумента во вторую степень
- если второй аргумент конечен и не является целым числом, результат равен NaN.
- Если оба аргумента являются целыми числами, результат точно равен математическому результату возведения первого аргумента во вторую степень, если этот результат можно точно представить в виде значения
double.
(В приведённых выше описаниях значение с плавающей точкой считается целым числом тогда и только тогда, когда оно конечно и является неподвижной точкой метода ceil или, что равнозначно, неподвижной точкой метода floor. Значение является неподвижной точкой метода с одним аргументом тогда и только тогда, когда результат применения метода к этому значению равен самому значению.)
- Примечание к API:
- Определения особых случаев для этого метода отличаются от определений особых случаев рекомендованной IEEE 754 операции
powдля возведения ±1.0в бесконечную степень. Этот метод рассматривает такие случаи как неопределённые и указывает, что возвращается NaN. Спецификация IEEE 754 рассматривает бесконечную степень как большое целое число (числа с плавающей точкой большой абсолютной величины являются целыми числами, а именно чётными целыми числами) и поэтому указывает, что должно возвращаться1.0. - Параметры:
-
a— основание. -
b— показатель степени. - Возвращает:
- значение
ab.
round
public static int round(float a)
int к аргументу; при равном расстоянии округление выполняется в сторону плюс бесконечности. Особые случаи:
- Если аргумент равен NaN, результат равен 0.
- Если аргумент равен отрицательной бесконечности или любому значению, меньшему или равному значению
Integer.MIN_VALUE, результат равен значениюInteger.MIN_VALUE. - Если аргумент равен положительной бесконечности или любому значению, большему или равному значению
Integer.MAX_VALUE, результат равен значениюInteger.MAX_VALUE.
- Параметры:
-
a— значение с плавающей точкой, которое нужно округлить до целого числа. - Возвращает:
- значение аргумента, округлённое до ближайшего значения
int. - См. также:
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. - См. также:
random
public static double random()
double с положительным знаком, большее или равное 0.0 и меньшее 1.0. Возвращаемые значения выбираются псевдослучайным образом с (приблизительно) равномерным распределением из этого диапазона. При первом вызове этого метода создаётся новый генератор псевдослучайных чисел, точно так же, как если бы использовалось выражение
new java.util.Random() В дальнейшем этот новый генератор псевдослучайных чисел используется для всех вызовов данного метода и нигде больше. Этот метод должным образом синхронизирован для корректного использования несколькими потоками. Однако, если многим потокам требуется генерировать псевдослучайные числа с высокой скоростью, конкуренция может уменьшиться, если каждый поток будет использовать собственный генератор псевдослучайных чисел.
- Возвращает:
- псевдослучайное значение
double, большее или равное0.0и меньшее1.0. - См. также:
addExact
public static int addExact(int x, int y)
int.- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат вызывает переполнение типа int - Начиная с версии:
- 1.8
- См. также:
addExact
public static long addExact(long x, long y)
long.- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат вызывает переполнение типа long - Начиная с версии:
- 1.8
- См. также:
subtractExact
public static int subtractExact(int x, int y)
int.- Параметры:
-
x— первое значение -
y— второе значение, вычитаемое из первого - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат вызывает переполнение типа int - Начиная с версии:
- 1.8
- См. также:
subtractExact
public static long subtractExact(long x, long y)
long.- Параметры:
-
x— первое значение -
y— второе значение, вычитаемое из первого - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат вызывает переполнение типа long - Начиная с версии:
- 1.8
- См. также:
multiplyExact
public static int multiplyExact(int x, int y)
int.- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат вызывает переполнение типа int - Начиная с версии:
- 1.8
- См. также:
multiplyExact
public static long multiplyExact(long x, int y)
long.- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат вызывает переполнение типа long - Начиная с версии:
- 9
- См. также:
multiplyExact
public static long multiplyExact(long x, long y)
long.- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат переполняет long - Начиная с версии:
- 1.8
- См. также:
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
- См. также:
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
- См. также:
floorDivExact
public static int floorDivExact(int x, int y)
int (ближайшее к положительной бесконечности), которое меньше или равно алгебраическому частному. Этот метод идентичен floorDiv(int,int), за исключением того, что он выбрасывает ArithmeticException, если делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Integer.MIN_VALUE. Метод вычисления остатка от деления с округлением вниз floorMod(int,int) является подходящим аналогом как для этого метода, так и для метода floorDiv(int,int).
Примеры и сравнение с оператором целочисленного деления / приведены в Math.floorDiv.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- наибольшее значение
int(ближайшее к положительной бесконечности), которое меньше или равно алгебраическому частному. - Выбрасывает:
-
ArithmeticException— если делительyравен нулю или делимоеxравноInteger.MIN_VALUE, а делительyравен-1. - Начиная с версии:
- 18
- См. также:
floorDivExact
public static long floorDivExact(long x, long y)
long (ближайшее к положительной бесконечности), которое меньше или равно алгебраическому частному. Этот метод идентичен floorDiv(long,long), за исключением того, что он выбрасывает ArithmeticException, если делимое равно Long.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Long.MIN_VALUE. Метод вычисления остатка от деления с округлением вниз floorMod(long,long) является подходящим аналогом как для этого метода, так и для метода floorDiv(long,long).
Примеры приведены в Math.floorDiv.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- наибольшее значение
long(ближайшее к положительной бесконечности), которое меньше или равно алгебраическому частному. - Выбрасывает:
-
ArithmeticException— если делительyравен нулю или делимоеxравноLong.MIN_VALUE, а делительyравен-1. - Начиная с версии:
- 18
- См. также:
ceilDivExact
public static int ceilDivExact(int x, int y)
int (ближайшее к отрицательной бесконечности), которое больше или равно алгебраическому частному. Этот метод идентичен ceilDiv(int,int), за исключением того, что он выбрасывает ArithmeticException, если делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Integer.MIN_VALUE. Метод вычисления остатка от деления с округлением вверх ceilMod(int,int) является подходящим аналогом как для этого метода, так и для метода ceilDiv(int,int).
Примеры и сравнение с оператором целочисленного деления / приведены в Math.ceilDiv.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- наименьшее значение
int(ближайшее к отрицательной бесконечности), которое больше или равно алгебраическому частному. - Выбрасывает:
-
ArithmeticException— если делительyравен нулю или делимоеxравноInteger.MIN_VALUE, а делительyравен-1. - Начиная с версии:
- 18
- См. также:
ceilDivExact
public static long ceilDivExact(long x, long y)
long (ближайшее к отрицательной бесконечности), которое больше или равно алгебраическому частному. Этот метод идентичен ceilDiv(long,long), за исключением того, что он выбрасывает ArithmeticException, если делимое равно Long.MIN_VALUE, а делитель равен -1, вместо того чтобы игнорировать целочисленное переполнение и возвращать Long.MIN_VALUE. Метод вычисления остатка от деления с округлением вверх ceilMod(long,long) является подходящим аналогом как для этого метода, так и для метода ceilDiv(long,long).
Примеры приведены в Math.ceilDiv.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- наименьшее значение
long(ближайшее к отрицательной бесконечности), которое больше или равно алгебраическому частному. - Выбрасывает:
-
ArithmeticException— если делительyравен нулю или делимоеxравноLong.MIN_VALUE, а делительyравен-1. - Начиная с версии:
- 18
- См. также:
incrementExact
public static int incrementExact(int a)
int. Переполнение происходит только для максимального значения.- Параметры:
-
a— значение, которое нужно увеличить - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат переполняет int - Начиная с версии:
- 14
- См. также:
incrementExact
public static long incrementExact(long a)
long. Переполнение происходит только для максимального значения.- Параметры:
-
a— значение, которое нужно увеличить - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат переполняет long - Начиная с версии:
- 14
- См. также:
decrementExact
public static int decrementExact(int a)
int. Переполнение происходит только для минимального значения.- Параметры:
-
a— значение, которое нужно уменьшить - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат переполняет int - Начиная с версии:
- 14
- См. также:
decrementExact
public static long decrementExact(long a)
long. Переполнение происходит только для минимального значения.- Параметры:
-
a— значение, которое нужно уменьшить - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат переполняет long - Начиная с версии:
- 14
- См. также:
negateExact
public static int negateExact(int a)
int. Переполнение происходит только для минимального значения.- Параметры:
-
a— значение, которое нужно инвертировать - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат переполняет int - Начиная с версии:
- 14
- См. также:
negateExact
public static long negateExact(long a)
long. Переполнение происходит только для минимального значения.- Параметры:
-
a— значение, которое нужно инвертировать - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат переполняет long - Начиная с версии:
- 14
- См. также:
toIntExact
public static int toIntExact(long value)
long, выбрасывая исключение, если значение переполняет int.- Параметры:
-
value— значение типа long - Возвращает:
- аргумент типа int
- Выбрасывает:
-
ArithmeticException— еслиargumentпереполняет int - Начиная с версии:
- 1.8
- См. также:
multiplyFull
public static long multiplyFull(int x, int y)
- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Начиная с версии:
- 9
- См. также:
multiplyHigh
public static long multiplyHigh(long x, long y)
long наиболее значимые 64 бита 128-битного произведения двух 64-битных множителей.- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Начиная с версии:
- 9
- См. также:
unsignedMultiplyHigh
public static long unsignedMultiplyHigh(long x, long y)
long наиболее значимые 64 бита беззнакового 128-битного произведения двух беззнаковых 64-битных множителей.- Параметры:
-
x— первое значение -
y— второе значение - Возвращает:
- результат
- Начиная с версии:
- 18
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
floorMod
public static int floorMod(int x, int y)
int. Остаток от деления с округлением вниз равен r = x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между floorDiv и floorMod такова:
floorDiv(x, y) * y + floorMod(x, y) == x
Примеры и сравнение с оператором % приведены в Math.floorMod.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- остаток от деления с округлением вниз
x - (floorDiv(x, y) * y) - Выбрасывает:
-
ArithmeticException— если делительyравен нулю - Начиная с версии:
- 1.8
- См. также:
floorMod
public static int floorMod(long x, int y)
long и int. Остаток от деления с округлением вниз равен r = x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между floorDiv и floorMod такова:
floorDiv(x, y) * y + floorMod(x, y) == x
Примеры и сравнение с оператором % приведены в Math.floorMod.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- остаток от деления с округлением вниз
x - (floorDiv(x, y) * y) - Выбрасывает:
-
ArithmeticException— если делительyравен нулю - Начиная с версии:
- 9
- См. также:
floorMod
public static long floorMod(long x, long y)
long. Остаток от деления с округлением вниз равен r = x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между floorDiv и floorMod такова:
floorDiv(x, y) * y + floorMod(x, y) == x
Примеры и сравнение с оператором % приведены в Math.floorMod.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- остаток от деления с округлением вниз
x - (floorDiv(x, y) * y) - Выбрасывает:
-
ArithmeticException— если делительyравен нулю - Начиная с версии:
- 1.8
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
ceilMod
public static int ceilMod(int x, int y)
int. Остаток от деления с округлением вверх равен r = x - (ceilDiv(x, y) * y), имеет знак, противоположный знаку делителя y, либо равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между ceilDiv и ceilMod такова:
ceilDiv(x, y) * y + ceilMod(x, y) == x
Примеры и сравнение с оператором % приведены в Math.ceilMod.
- Параметры:
-
x— делимое -
y— делитель - Возвращает:
- остаток от деления с округлением вверх
x - (ceilDiv(x, y) * y) - Выбрасывает:
-
ArithmeticException— если делительyравен нулю - Начиная с версии:
- 18
- См. также:
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
- См. также:
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
- См. также:
abs
public static int abs(int a)
int. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается противоположное значение аргумента. Обратите внимание: если аргумент равен значению Integer.MIN_VALUE, то есть наименьшему представимому значению типа int, результатом будет это же отрицательное значение. В отличие от него, метод absExact(int) для этого значения вызывает исключение ArithmeticException.
- Параметры:
-
a— аргумент, абсолютное значение которого требуется определить. - Возвращает:
- абсолютное значение аргумента.
- См. также:
absExact
public static int absExact(int a)
int, если оно точно представимо как int; если результат выходит за пределы положительного диапазона int, вызывает ArithmeticException. Поскольку диапазон целых чисел в дополнительном коде асимметричен и содержит на одно отрицательное значение больше (JLS §4.2.1), математическое абсолютное значение Integer.MIN_VALUE выходит за пределы положительного диапазона int, поэтому для этого аргумента вызывается исключение.
- Параметры:
-
a— аргумент, абсолютное значение которого требуется определить - Возвращает:
- абсолютное значение аргумента, если не происходит переполнение
- Вызывает исключение:
-
ArithmeticException— если аргумент равенInteger.MIN_VALUE - Начиная с:
- 15
- См. также:
abs
public static long abs(long a)
long. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается противоположное значение аргумента. Обратите внимание: если аргумент равен значению Long.MIN_VALUE, то есть наименьшему представимому значению типа long, результатом будет это же отрицательное значение. В отличие от него, метод absExact(long) для этого значения вызывает исключение ArithmeticException.
- Параметры:
-
a— аргумент, абсолютное значение которого требуется определить. - Возвращает:
- абсолютное значение аргумента.
- См. также:
absExact
public static long absExact(long a)
long, если оно точно представимо как long; если результат выходит за пределы положительного диапазона long, вызывает ArithmeticException. Поскольку диапазон целых чисел в дополнительном коде асимметричен и содержит на одно отрицательное значение больше (JLS §4.2.1), математическое абсолютное значение Long.MIN_VALUE выходит за пределы положительного диапазона long, поэтому для этого аргумента вызывается исключение.
- Параметры:
-
a— аргумент, абсолютное значение которого требуется определить - Возвращает:
- абсолютное значение аргумента, если не происходит переполнение
- Вызывает исключение:
-
ArithmeticException— если аргумент равенLong.MIN_VALUE - Начиная с:
- 15
- См. также:
abs
public static float abs(float a)
float. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается противоположное значение аргумента. Особые случаи: - Если аргумент равен положительному или отрицательному нулю, результатом будет положительный ноль.
- Если аргумент бесконечен, результатом будет положительная бесконечность.
- Если аргумент равен NaN, результатом будет NaN.
- Примечание к API:
- Как следует из приведенного выше, одной из допустимых реализаций этого метода является выражение ниже, которое вычисляет
floatс теми же порядком и значащей частью, что и аргумент, но с гарантированно нулевым битом знака, указывающим на положительное значение:
Float.intBitsToFloat(0x7fffffff & Float.floatToRawIntBits(a)) - Параметры:
-
a— аргумент, абсолютное значение которого требуется определить - Возвращает:
- абсолютное значение аргумента.
abs
public static double abs(double a)
double. Если аргумент неотрицателен, возвращается сам аргумент. Если аргумент отрицателен, возвращается противоположное значение аргумента. Особые случаи: - Если аргумент равен положительному или отрицательному нулю, результатом будет положительный ноль.
- Если аргумент бесконечен, результатом будет положительная бесконечность.
- Если аргумент равен NaN, результатом будет NaN.
- Примечание к API:
- Как следует из приведенного выше, одной из допустимых реализаций этого метода является выражение ниже, которое вычисляет
doubleс теми же порядком и значащей частью, что и аргумент, но с гарантированно нулевым битом знака, указывающим на положительное значение:
Double.longBitsToDouble((Double.doubleToRawLongBits(a)<<1)>>>1) - Параметры:
-
a— аргумент, абсолютное значение которого требуется определить - Возвращает:
- абсолютное значение аргумента.
max
public static int max(int a, int b)
int. Иными словами, результатом является аргумент, ближайший к значению Integer.MAX_VALUE. Если значения аргументов совпадают, результатом будет это же значение.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- большее из значений
aиb.
max
public static long max(long a, long b)
long. Иными словами, результатом является аргумент, ближайший к значению Long.MAX_VALUE. Если значения аргументов совпадают, результатом будет это же значение.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- большее из значений
aиb.
max
public static float max(float a, float b)
float. Иными словами, результатом является аргумент, ближайший к положительной бесконечности. Если значения аргументов совпадают, результатом будет это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов численного сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет положительный ноль.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- большее из значений
aиb.
max
public static double max(double a, double b)
double. Иными словами, результатом является аргумент, ближайший к положительной бесконечности. Если значения аргументов совпадают, результатом будет это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов численного сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет положительный ноль.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- большее из значений
aиb.
min
public static int min(int a, int b)
int. Иными словами, результатом является аргумент, ближайший к значению Integer.MIN_VALUE. Если значения аргументов совпадают, результатом будет это же значение.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- меньшее из значений
aиb.
min
public static long min(long a, long b)
long. Иными словами, результатом является аргумент, ближайший к значению Long.MIN_VALUE. Если значения аргументов совпадают, результатом будет это же значение.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- меньшее из значений
aиb.
min
public static float min(float a, float b)
float. Иными словами, результатом является значение, ближайшее к отрицательной бесконечности. Если значения аргументов совпадают, результатом будет это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов численного сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет отрицательный ноль.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- меньшее из значений
aиb.
min
public static double min(double a, double b)
double. Иными словами, результатом является значение, ближайшее к отрицательной бесконечности. Если значения аргументов совпадают, результатом будет это же значение. Если хотя бы одно из значений равно NaN, результатом будет NaN. В отличие от операторов численного сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Если один аргумент равен положительному нулю, а другой — отрицательному, результатом будет отрицательный ноль.- Параметры:
-
a— аргумент. -
b— другой аргумент. - Возвращает:
- меньшее из значений
aиb.
clamp
public static int clamp(long value, int min, int max)
min, возвращается 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, возвращается min. Если значение больше max, возвращается max. В противном случае возвращается исходное значение.- Параметры:
-
value— значение, которое требуется ограничить -
min— минимально допустимое значение -
max— максимально допустимое значение - Возвращает:
- ограниченное значение в диапазоне
min..max - Вызывает исключение:
-
IllegalArgumentException— еслиmin > max - Начиная с:
- 21
clamp
public static double clamp(double value, double min, double 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, возвращается min. Если значение больше max, возвращается max. В противном случае возвращается исходное значение. Если значение равно NaN, результатом также будет NaN. В отличие от операторов численного сравнения, этот метод считает отрицательный ноль строго меньшим положительного нуля. Например, clamp(-0.0f, 0.0f, 1.0f) возвращает 0.0f.
- Параметры:
-
value— значение, которое требуется ограничить -
min— минимально допустимое значение -
max— максимально допустимое значение - Возвращает:
- ограниченное значение в диапазоне
min..max - Вызывает исключение:
-
IllegalArgumentException— если один из аргументовminиmaxравен NaN илиmin > max, либо еслиminравен +0.0f, аmaxравен -0.0f. - Начиная с:
- 21
fma
public static double fma(double a, double b, double c)
double. Округление выполняется в соответствии с режимом округления к ближайшему четному. Напротив, если a * b + c вычисляется как обычное выражение с плавающей точкой, происходят две ошибки округления: первая при умножении, вторая при сложении. Особые случаи:
- Если любой аргумент равен NaN, результатом будет NaN.
- Если один из первых двух аргументов бесконечен, а другой равен нулю, результатом будет NaN.
- Если точное произведение первых двух аргументов бесконечно (то есть хотя бы один из аргументов бесконечен, а другой не равен ни нулю, ни NaN), а третий аргумент — бесконечность противоположного знака, результатом будет NaN.
Обратите внимание, что fusedMac(a, 1.0, c) возвращает тот же результат, что и (a + c). Однако fusedMac(a, b, +0.0) не всегда возвращает тот же результат, что и (a * b), поскольку fusedMac(-0.0, +0.0, +0.0) является +0.0, а (-0.0 * +0.0) является -0.0; однако fusedMac(a, b, -0.0) эквивалентно (a * b).
- Примечание к API:
- Этот метод соответствует операции fusedMultiplyAdd, определенной в IEEE 754-2008.
- Параметры:
-
a— значение -
b— значение -
c— значение - Возвращает:
- вычисленное значение (a × b + c), как если бы диапазон и точность были неограниченными, с однократным округлением до ближайшего значения
double - Начиная с:
- 9
fma
public static float fma(float a, float b, float c)
float. Округление выполняется в соответствии с режимом округления к ближайшему четному. Напротив, если a * b + c вычисляется как обычное выражение с плавающей точкой, происходят две ошибки округления: первая при умножении, вторая при сложении. Особые случаи:
- Если любой аргумент равен NaN, результатом будет NaN.
- Если один из первых двух аргументов бесконечен, а другой равен нулю, результатом будет NaN.
- Если точное произведение первых двух аргументов бесконечно (то есть хотя бы один из аргументов бесконечен, а другой не равен ни нулю, ни NaN), а третий аргумент — бесконечность противоположного знака, результатом будет NaN.
Обратите внимание, что fma(a, 1.0f, c) возвращает тот же результат, что и (a + c). Однако fma(a, b, +0.0f) не всегда возвращает тот же результат, что и (a * b), поскольку fma(-0.0f, +0.0f, +0.0f) является +0.0f, а (-0.0f * +0.0f) является -0.0f; однако fma(a, b, -0.0f) эквивалентно (a * b).
- Примечание к API:
- Этот метод соответствует операции fusedMultiplyAdd, определенной в IEEE 754-2008.
- Параметры:
-
a— значение -
b— значение -
c— значение - Возвращает:
- вычисленное значение (a × b + c), как если бы диапазон и точность были неограниченными, с однократным округлением до ближайшего значения
float - Начиная с:
- 9
ulp
public static double ulp(double d)
double — это положительное расстояние между этим значением с плавающей точкой и следующим по величине значением
double. Обратите внимание: для неравного NaN x выполняется ulp(-x) == ulp(x). Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен положительной или отрицательной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен положительному или отрицательному нулю, результатом будет
Double.MIN_VALUE. - Если аргумент равен ±
Double.MAX_VALUE, результат равен 2971.
- Параметры:
-
d— значение с плавающей точкой, для которого требуется вернуть ulp - Возвращает:
- размер ulp аргумента
- Начиная с:
- 1.5
ulp
public static float ulp(float f)
float — это положительное расстояние между этим значением с плавающей точкой и следующим по величине значением
float. Обратите внимание: для неравного NaN x выполняется ulp(-x) == ulp(x). Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен положительной или отрицательной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен положительному или отрицательному нулю, результатом будет
Float.MIN_VALUE. - Если аргумент равен ±
Float.MAX_VALUE, результат равен 2104.
- Параметры:
-
f— значение с плавающей точкой, для которого требуется вернуть ulp - Возвращает:
- размер ulp аргумента
- Начиная с:
- 1.5
signum
public static double signum(double d)
Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен положительному или отрицательному нулю, результатом будет сам аргумент.
- Параметры:
-
d— значение с плавающей точкой, для которого требуется вернуть значение знаковой функции - Возвращает:
- значение знаковой функции аргумента
- Начиная с:
- 1.5
signum
public static float signum(float f)
Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен положительному или отрицательному нулю, результатом будет сам аргумент.
- Параметры:
-
f— значение с плавающей точкой, для которого требуется вернуть значение знаковой функции - Возвращает:
- значение знаковой функции аргумента
- Начиная с:
- 1.5
sinh
public static double sinh(double x)
double. Гиперболический синус x определяется как (ex − e−x)/2, где e — число Эйлера. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент бесконечен, результатом будет бесконечность с тем же знаком, что и у аргумента.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Параметры:
-
x— число, гиперболический синус которого требуется вернуть. - Возвращает:
- гиперболический синус
x. - Начиная с:
- 1.5
cosh
public static double cosh(double x)
double. Гиперболический косинус x определяется как (ex + e−x)/2, где e — число Эйлера. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент бесконечен, результатом будет положительная бесконечность.
- Если аргумент равен нулю, результатом будет
1.0.
- Параметры:
-
x— число, гиперболический косинус которого требуется вернуть. - Возвращает:
- гиперболический косинус
x. - Начиная с:
- 1.5
tanh
public static double tanh(double x)
double. Гиперболический тангенс x определяется как (ex − e−x)/(ex + e−x), то есть sinh(x)/cosh(x). Обратите внимание, что абсолютное значение точного tanh всегда меньше 1. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Если аргумент равен положительной бесконечности, результатом будет
+1.0. - Если аргумент равен отрицательной бесконечности, результатом будет
-1.0.
- Параметры:
-
x— число, гиперболический тангенс которого требуется вернуть. - Возвращает:
- гиперболический тангенс
x. - Начиная с:
- 1.5
asinh
public static double asinh(double x)
double. Обратный гиперболический синус x определяется как функция, для которой asinh(sinh(x)) = x при любом x. Обратите внимание, что область определения и область значений точной функции asinh не ограничены. Особые случаи:
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Если аргумент равен бесконечности, результатом будет бесконечность с тем же знаком, что и у аргумента.
- Если аргумент равен NaN, результатом будет NaN.
- Параметры:
-
x— число, обратный гиперболический синус которого нужно вернуть. - Возвращает:
- Обратный гиперболический синус
x. - Начиная с версии:
- 27
acosh
public static double acosh(double x)
double. Обратный гиперболический косинус x определяется как функция, для которой acosh(cosh(x)) = x при любом x >= 0. Обратите внимание, что область значений точной функции acosh(x) — >= 0. Особые случаи:
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент меньше
1.0, результатом будет NaN. - Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен
1.0, результатом будет положительный ноль.
- Параметры:
-
x— число, обратный гиперболический косинус которого нужно вернуть. - Возвращает:
- Обратный гиперболический косинус
x. - Начиная с версии:
- 27
atanh
public static double atanh(double x)
double. Обратный гиперболический тангенс x определяется как функция, для которой atanh(tanh(x)) = x при любом x. Обратите внимание, что область определения точной функции atanh — (-1; 1), а область значений не ограничена. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Если аргумент равен
+1.0, результатом будет положительная бесконечность. - Если аргумент равен
-1.0, результатом будет отрицательная бесконечность. - Если модуль аргумента больше
1.0, результатом будет NaN.
- Параметры:
-
x— число, обратный гиперболический тангенс которого нужно вернуть. - Возвращает:
- Обратный гиперболический тангенс
x. - Начиная с версии:
- 27
hypot
public static double hypot(double x, double y)
Особые случаи:
- Если хотя бы один аргумент бесконечен, результатом будет положительная бесконечность.
- Если хотя бы один аргумент равен NaN и ни один аргумент не бесконечен, результатом будет NaN.
- Если оба аргумента равны нулю, результатом будет положительный ноль.
- Параметры:
-
x— значение -
y— значение - Возвращает:
- sqrt(x2 +y2) без промежуточного переполнения или потери точности из-за антипереполнения
- Начиная с версии:
- 1.5
expm1
public static double expm1(double x)
expm1(x) + 1 намного ближе к истинному результату ex, чем exp(x). Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен отрицательной бесконечности, результатом будет -1.0.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Параметры:
-
x— показатель степени, в которую возводится e при вычислении ex−1. - Возвращает:
- значение e
x- 1. - Начиная с версии:
- 1.5
log1p
public static double log1p(double x)
x результат log1p(x) намного ближе к истинному результату ln(1 + x), чем результат вычисления с плавающей точкой log(1.0+x). Особые случаи:
- Если аргумент равен NaN или меньше -1, результатом будет NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен минус единице, результатом будет отрицательная бесконечность.
- Если аргумент равен нулю, результатом будет ноль с тем же знаком, что и у аргумента.
- Параметры:
-
x— значение - Возвращает:
- значение ln(
x+ 1), натуральный логарифмx+ 1 - Начиная с версии:
- 1.5
copySign
public static double copySign(double magnitude, double sign)
sign, равный NaN, всегда считается положительным.- Параметры:
-
magnitude— параметр, задающий модуль результата -
sign— параметр, задающий знак результата - Возвращает:
- значение с модулем
magnitudeи знакомsign. - Начиная с версии:
- 1.6
copySign
public static float copySign(float magnitude, float sign)
sign, равный NaN, всегда считается положительным.- Параметры:
-
magnitude— параметр, задающий модуль результата -
sign— параметр, задающий знак результата - Возвращает:
- значение с модулем
magnitudeи знакомsign. - Начиная с версии:
- 1.6
getExponent
public static int getExponent(float f)
float. Особые случаи: - Если аргумент равен NaN или бесконечности, результатом будет
Float.MAX_EXPONENT+ 1. - Если аргумент равен нулю или является субнормальным, результатом будет
Float.MIN_EXPONENT-1.
- Параметры:
-
f— значение типаfloat - Возвращает:
- несмещённый показатель степени аргумента
- Начиная с версии:
- 1.6
getExponent
public static int getExponent(double d)
double. Особые случаи: - Если аргумент равен NaN или бесконечности, результатом будет
Double.MAX_EXPONENT+ 1. - Если аргумент равен нулю или является субнормальным, результатом будет
Double.MIN_EXPONENT-1.
- Параметры:
-
d— значение типаdouble - Возвращает:
- несмещённый показатель степени аргумента
- Начиная с версии:
- 1.6
nextAfter
public static double nextAfter(double start, double direction)
Особые случаи:
- Если хотя бы один аргумент равен NaN, возвращается NaN.
- Если оба аргумента — знаковые нули,
directionвозвращается без изменений (что следует из требования возвращать второй аргумент, если аргументы сравниваются как равные). - Если
startравен ±Double.MIN_VALUE, аdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращается ноль со знакомstart. - Если
startравен бесконечности, аdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращаетсяDouble.MAX_VALUEсо знакомstart. - Если
startравен ±Double.MAX_VALUE, аdirectionимеет значение, при котором результат должен иметь больший модуль, возвращается бесконечность со знакомstart.
- Параметры:
-
start— исходное значение с плавающей точкой -
direction— значение, указывающее, какого из соседних значенийstartилиstartследует вернуть - Возвращает:
- Число с плавающей точкой, соседнее с
startв направленииdirection. - Начиная с версии:
- 1.6
nextAfter
public static float nextAfter(float start, double direction)
Особые случаи:
- Если хотя бы один аргумент равен NaN, возвращается NaN.
- Если оба аргумента — знаковые нули, возвращается значение, эквивалентное
direction. - Если
startравен ±Float.MIN_VALUE, аdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращается ноль со знакомstart. - Если
startравен бесконечности, аdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращаетсяFloat.MAX_VALUEсо знакомstart. - Если
startравен ±Float.MAX_VALUE, аdirectionимеет значение, при котором результат должен иметь больший модуль, возвращается бесконечность со знакомstart.
- Параметры:
-
start— исходное значение с плавающей точкой -
direction— значение, указывающее, какого из соседних значенийstartилиstartследует вернуть - Возвращает:
- Число с плавающей точкой, соседнее с
startв направленииdirection. - Начиная с версии:
- 1.6
nextUp
public static double nextUp(double d)
d в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(d,
Double.POSITIVE_INFINITY); однако реализация nextUp может работать быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен нулю, результатом будет
Double.MIN_VALUE
- Параметры:
-
d— исходное значение с плавающей точкой - Возвращает:
- Соседнее значение с плавающей точкой, более близкое к положительной бесконечности.
- Начиная с версии:
- 1.6
nextUp
public static float nextUp(float f)
f в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(f,
Float.POSITIVE_INFINITY); однако реализация nextUp может работать быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
- Если аргумент равен нулю, результатом будет
Float.MIN_VALUE
- Параметры:
-
f— исходное значение с плавающей точкой - Возвращает:
- Соседнее значение с плавающей точкой, более близкое к положительной бесконечности.
- Начиная с версии:
- 1.6
nextDown
public static double nextDown(double d)
d в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(d,
Double.NEGATIVE_INFINITY); однако реализация nextDown может работать быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен отрицательной бесконечности, результатом будет отрицательная бесконечность.
- Если аргумент равен нулю, результатом будет
-Double.MIN_VALUE
- Параметры:
-
d— исходное значение с плавающей точкой - Возвращает:
- Соседнее значение с плавающей точкой, более близкое к отрицательной бесконечности.
- Начиная с версии:
- 1.8
nextDown
public static float nextDown(float f)
f в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(f,
Float.NEGATIVE_INFINITY); однако реализация nextDown может работать быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент равен NaN, результатом будет NaN.
- Если аргумент равен отрицательной бесконечности, результатом будет отрицательная бесконечность.
- Если аргумент равен нулю, результатом будет
-Float.MIN_VALUE
- Параметры:
-
f— исходное значение с плавающей точкой - Возвращает:
- Соседнее значение с плавающей точкой, более близкое к отрицательной бесконечности.
- Начиная с версии:
- 1.8
scalb
public static double scalb(double d, int scaleFactor)
d × 2scaleFactor, округлённое так, как если бы результат был получен одним корректно округлённым умножением чисел с плавающей точкой. Если показатель степени результата находится между Double.MIN_EXPONENT и Double.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата превышает
Double.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат субнормальный, точность может быть потеряна; то есть, когда scalb(x, n) является субнормальным, scalb(scalb(x, n),
-n) может не равняться x. Если результат не равен NaN, он имеет тот же знак, что и d. Особые случаи:
- Если первый аргумент равен NaN, возвращается NaN.
- Если первый аргумент равен бесконечности, возвращается бесконечность с тем же знаком.
- Если первый аргумент равен нулю, возвращается ноль с тем же знаком.
- Параметры:
-
d— число, которое нужно умножить на степень двойки. -
scaleFactor— показатель степени числа 2, используемый для масштабированияd - Возвращает:
-
d× 2scaleFactor - Начиная с версии:
- 1.6
scalb
public static float scalb(float f, int scaleFactor)
f × 2scaleFactor, округлённое так, как если бы результат был получен одним корректно округлённым умножением чисел с плавающей точкой. Если показатель степени результата находится между Float.MIN_EXPONENT и Float.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата превышает
Float.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат субнормальный, точность может быть потеряна; то есть, когда scalb(x, n) является субнормальным, scalb(scalb(x, n),
-n) может не равняться x. Если результат не равен NaN, он имеет тот же знак, что и f. Особые случаи:
- Если первый аргумент равен NaN, возвращается NaN.
- Если первый аргумент равен бесконечности, возвращается бесконечность с тем же знаком.
- Если первый аргумент равен нулю, возвращается ноль с тем же знаком.
- Параметры:
-
f— число, которое нужно умножить на степень двойки. -
scaleFactor— показатель степени числа 2, используемый для масштабированияf - Возвращает:
-
f× 2scaleFactor - Начиная с версии:
- 1.6
unsignedMultiplyExact
public static int unsignedMultiplyExact(int x, int y)
int, выбрасывается исключение.- Параметры:
-
x— первое беззнаковое значение -
y— второе беззнаковое значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат выходит за диапазон беззнакового int - Начиная с версии:
- 25
unsignedMultiplyExact
public static long unsignedMultiplyExact(long x, int y)
long, выбрасывается исключение.- Параметры:
-
x— первое беззнаковое значение -
y— второе беззнаковое значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат выходит за диапазон беззнакового long - Начиная с версии:
- 25
unsignedMultiplyExact
public static long unsignedMultiplyExact(long x, long y)
long, выбрасывается исключение.- Параметры:
-
x— первое беззнаковое значение -
y— второе беззнаковое значение - Возвращает:
- результат
- Выбрасывает:
-
ArithmeticException— если результат выходит за диапазон беззнакового long - Начиная с версии:
- 25
powExact
public static int powExact(int x, int n)
x в степени n. Если результат выходит за диапазон int, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.- Параметры:
-
x— основание. -
n— показатель степени. - Возвращает:
-
xв степениn. - Выбрасывает:
-
ArithmeticException— еслиnотрицательно или результат выходит за диапазон int. - Начиная с версии:
- 25
unsignedPowExact
public static int unsignedPowExact(int x, int n)
x в степени n. Если результат выходит за диапазон беззнакового int, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.- Параметры:
-
x— беззнаковое основание. -
n— показатель степени. - Возвращает:
-
xв степениn. - Выбрасывает:
-
ArithmeticException— еслиnотрицательно или результат выходит за диапазон беззнакового int. - Начиная с версии:
- 25
powExact
public static long powExact(long x, int n)
x в степени n. Если результат выходит за диапазон long, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.- Параметры:
-
x— основание. -
n— показатель степени. - Возвращает:
-
xв степениn. - Выбрасывает:
-
ArithmeticException— еслиnотрицательно или результат выходит за диапазон long. - Начиная с версии:
- 25
unsignedPowExact
public static long unsignedPowExact(long x, int n)
x в степени n. Если результат выходит за диапазон беззнакового long, выбрасывается исключение. Если n равно 0, возвращаемое значение равно 1.- Параметры:
-
x— беззнаковое основание. -
n— показатель степени. - Возвращает:
-
xв степениn. - Выбрасывает:
-
ArithmeticException— еслиnотрицательно или результат выходит за диапазон беззнакового long. - Начиная с версии:
- 25
© 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.