Класс 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
- Внешние спецификации
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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, вызывая ArithmeticException, если результат выходит за пределы положительного диапазона int. |
static long |
absExact |
Возвращает математическое абсолютное значение значения long, если оно точно представимо как long, вызывая ArithmeticException, если результат выходит за пределы положительного диапазона long. |
static double |
acos |
Возвращает арккосинус значения; возвращаемый угол находится в диапазоне от 0,0 до pi. |
static int |
addExact |
Возвращает сумму аргументов, вызывая исключение, если результат выходит за пределы int. |
static long |
addExact |
Возвращает сумму аргументов, вызывая исключение, если результат выходит за пределы long. |
static double |
asin |
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2. |
static double |
atan |
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от −pi/2 до pi/2. |
static double |
atan2 |
Возвращает угол theta из преобразования прямоугольных координат ( x, y) в полярные координаты (r, theta). |
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 |
Возвращает Fused Multiply-Add (произведение-сумма) трёх аргументов; то есть возвращает точное произведение первых двух аргументов, сложенное с третьим аргументом, и затем один раз округляется к ближайшему значению double. |
static float |
fma |
Возвращает Fused Multiply-Add (произведение-сумма) трёх аргументов; то есть возвращает точное произведение первых двух аргументов, сложенное с третьим аргументом, и затем один раз округляется к ближайшему значению 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 |
Возвращает логарифм по основанию 10 значения 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 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 long |
unsignedMultiplyHigh |
Возвращает как long самые старшие 64 бита беззнакового 128-битного произведения двух беззнаковых 64-битных множителей. |
Подробное описание полей
E
public static final double E
- См. также:
PI
public static final double PI
- См. также:
TAU
public static final 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)
- Если аргумент NaN, результат NaN.
- Если аргумент положительная бесконечность, результат положительная бесконечность.
- Если аргумент отрицательная бесконечность, результат положительный ноль.
- Если аргумент равен нулю, результат равен
1.0.
- Параметры:
-
a- показатель степени, к которому нужно возвести e. - Возвращает:
- значение e
a, где e — основание натуральных логарифмов.
log
public static double log(double a)
- Если аргумент NaN или меньше нуля, результат NaN.
- Если аргумент положительная бесконечность, результат положительная бесконечность.
- Если аргумент положительный ноль или отрицательный ноль, результат отрицательная бесконечность.
- Если аргумент равен
1.0, результат равен положительному нулю.
- Параметры:
-
a- значение - Возвращает:
- значение ln
a, натуральный логарифмa.
log10
public static double log10(double a)
- Если аргумент NaN или меньше нуля, результат NaN.
- Если аргумент положительная бесконечность, результат положительная бесконечность.
- Если аргумент положительный ноль или отрицательный ноль, результат отрицательная бесконечность.
- Если аргумент равен 10n для целого n, результат равен n. В частности, если аргумент равен
1.0(100), результат равен положительному нулю.
- Параметры:
-
a- значение - Возвращает:
- логарифм по основанию 10 от
a. - С версии:
- 1.5
sqrt
public static double sqrt(double a)
- Если аргумент NaN или меньше нуля, результат NaN.
- Если аргумент положительная бесконечность, результат положительная бесконечность.
- Если аргумент равен положительному или отрицательному нулю, результат такой же, как и аргумент.
- Параметры:
-
a- значение. - Возвращает:
- положительный квадратный корень из
a.
cbrt
public static double cbrt(double a)
x, cbrt(-x) ==
-cbrt(x); то есть кубический корень из отрицательного значения — это отрицательный кубический корень из абсолютного значения этого значения. Особые случаи: - Если аргумент NaN, результат NaN.
- Если аргумент бесконечен, результат — бесконечность с таким же знаком, как и у аргумента.
- Если аргумент равен нулю, результат — ноль с таким же знаком, как и у аргумента.
- Параметры:
-
a- значение. - Возвращает:
- кубический корень из
a. - С версии:
- 1.5
IEEEremainder
public static double IEEEremainder(double f1, double f2)
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.
- Если первый аргумент — положительный ноль, а второй аргумент — положительный, или первый аргумент — положительный и конечный, а второй аргумент — положительная бесконечность, то результат — положительный ноль.
- Если первый аргумент — отрицательный ноль, а второй аргумент — положительный, или первый аргумент — отрицательный и конечный, а второй аргумент — положительная бесконечность, то результат — отрицательный ноль.
- Если первый аргумент — положительный ноль, а второй аргумент — отрицательный, или первый аргумент — положительный и конечный, а второй аргумент — отрицательная бесконечность, то результат — значение, наиболее близкое к pi.
- Если первый аргумент — отрицательный ноль, а второй аргумент — отрицательный, или первый аргумент — отрицательный и конечный, а второй аргумент — отрицательная бесконечность, то результат — значение, наиболее близкое к -pi.
- Если первый аргумент — положительный, а второй аргумент — положительный или отрицательный ноль, или первый аргумент — положительная бесконечность, а второй аргумент — конечный, то результат — значение, наиболее близкое к pi/2.
- Если первый аргумент — отрицательный, а второй аргумент — положительный или отрицательный ноль, или первый аргумент — отрицательная бесконечность, а второй аргумент — конечный, то результат — значение, наиболее близкое к -pi/2.
- Если оба аргумента — положительная бесконечность, то результат — значение, наиболее близкое к pi/4.
- Если первый аргумент — положительная бесконечность, а второй аргумент — отрицательная бесконечность, то результат — значение, наиболее близкое к 3*pi/4.
- Если первый аргумент — отрицательная бесконечность, а второй аргумент — положительная бесконечность, то результат — значение, наиболее близкое к -pi/4.
- Если оба аргумента — отрицательная бесконечность, то результат — значение, наиболее близкое к -3*pi/4.
- Примечание API:
- Для y с положительным знаком и конечным ненулевым x точное математическое значение
atan2равно:- Если x > 0, atan(abs(y/x))
- Если x < 0, π - atan(abs(y/x))
- Параметры:
-
y- координата ординаты -
x- координата абсциссы - Возвращает:
- компонент theta точки (r, theta) в полярных координатах, соответствующей точке (x, y) в декартовых координатах.
pow
public static double pow(double a, double b)
- Если второй аргумент равен положительному или отрицательному нулю, то результат равен 1.0.
- Если второй аргумент равен 1.0, то результат такой же, как и первый аргумент.
- Если второй аргумент равен NaN, то результат равен NaN.
- Если первый аргумент равен NaN, а второй аргумент отличен от нуля, то результат равен NaN.
- Если
- абсолютное значение первого аргумента больше 1, а второй аргумент равен положительной бесконечности, или
- абсолютное значение первого аргумента меньше 1, а второй аргумент равен отрицательной бесконечности,
- Если
- абсолютное значение первого аргумента больше 1, а второй аргумент равен отрицательной бесконечности, или
- абсолютное значение первого аргумента меньше 1, а второй аргумент равен положительной бесконечности,
- Если абсолютное значение первого аргумента равно 1, а второй аргумент бесконечен, то результат равен NaN.
- Если
- первый аргумент равен положительному нулю, а второй аргумент больше нуля, или
- первый аргумент равен положительной бесконечности, а второй аргумент меньше нуля,
- Если
- первый аргумент равен положительному нулю, а второй аргумент меньше нуля, или
- первый аргумент равен положительной бесконечности, а второй аргумент больше нуля,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент больше нуля, но не является конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент меньше нуля, но не является конечным нечётным целым числом,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент является положительным конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент является отрицательным конечным нечётным целым числом,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент меньше нуля, но не является конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент больше нуля, но не является конечным нечётным целым числом,
- Если
- первый аргумент равен отрицательному нулю, а второй аргумент является отрицательным конечным нечётным целым числом, или
- первый аргумент равен отрицательной бесконечности, а второй аргумент является положительным конечным нечётным целым числом,
- Если первый аргумент конечен и меньше нуля
- если второй аргумент — конечное чётное целое число, результат равен результату возведения абсолютного значения первого аргумента в степень второго аргумента
- если второй аргумент — конечное нечётное целое число, результат равен отрицательному результату возведения абсолютного значения первого аргумента в степень второго аргумента
- если второй аргумент конечен и не является целым числом, то результат равен NaN.
- Если оба аргумента являются целыми числами, то результат точно равен математическому результату возведения первого аргумента в степень второго аргумента, если этот результат может быть точно представлен как
doubleзначение.
(В предыдущих описаниях число с плавающей запятой считается целым тогда и только тогда, когда оно конечно и является неподвижной точкой метода ceil или, что эквивалентно, неподвижной точкой метода floor. Значение является неподвижной точкой одноаргументного метода тогда и только тогда, когда результат применения метода к значению равен этому значению.)
- API Note:
- Определения специальных случаев этого метода отличаются от определений специальных случаев рекомендованной IEEE 754
powоперации для ±1.0, возведённых в бесконечную степень. Этот метод рассматривает такие случаи как неопределённые и задаёт возврат NaN. Спецификация IEEE 754 рассматривает бесконечную степень как большое целое число (числа с плавающей запятой большой величины являются численно целыми числами, конкретно чётными целыми числами) и поэтому задаёт возврат1.0. - Parameters:
-
a- основание. -
b- показатель степени. - Returns:
- значение
ab.
round
public static int round(float a)
int к аргументу, при совпадении округляет до положительной бесконечности. Особые случаи:
- Если аргумент равен NaN, результат равен 0.
- Если аргумент равен отрицательной бесконечности или любому значению, меньше или равно значению
Integer.MIN_VALUE, результат равен значениюInteger.MIN_VALUE. - Если аргумент равен положительной бесконечности или любому значению, больше или равно значению
Integer.MAX_VALUE, результат равен значениюInteger.MAX_VALUE.
- Parameters:
-
a- значение с плавающей запятой, подлежащее округлению до целого числа. - Returns:
- значение аргумента, округлённое до ближайшего
intзначения. - См. также:
round
public static long round(double a)
long к аргументу, при совпадении округляет до положительной бесконечности. Особые случаи:
- Если аргумент равен NaN, результат равен 0.
- Если аргумент равен отрицательной бесконечности или любому значению, меньше или равно значению
Long.MIN_VALUE, результат равен значениюLong.MIN_VALUE. - Если аргумент равен положительной бесконечности или любому значению, больше или равно значению
Long.MAX_VALUE, результат равен значениюLong.MAX_VALUE.
- Parameters:
-
a- значение с плавающей запятой, подлежащее округлению доlong. - Returns:
- значение аргумента, округлённое до ближайшего
longзначения. - См. также:
random
public static double random()
double значение с положительным знаком, больше или равно 0.0 и меньше 1.0. Возвращаемые значения выбираются псевдослучайным образом с (приблизительно) равномерным распределением из этого диапазона. При первом вызове этого метода он создаёт один новый генератор псевдослучайных чисел, точно так же, как и по выражению
new java.util.Random() Этот новый генератор псевдослучайных чисел используется впоследствии для всех вызовов этого метода и нигде больше. Этот метод должным образом синхронизирован, чтобы обеспечить правильное использование более чем одной нитью. Однако, если многим нитям нужно генерировать псевдослучайные числа с большой скоростью, это может снизить конфликт, если каждой нити будет предоставлен свой собственный генератор псевдослучайных чисел.
- Returns:
- псевдослучайное
doubleзначение, большее или равное0.0и меньшее1.0. - См. также:
addExact
public static int addExact(int x, int y)
int.- Parameters:
-
x- первое значение -
y- второе значение - Returns:
- результат
- Throws:
-
ArithmeticException- если результат выходит за пределы int - Since:
- 1.8
- См. также:
addExact
public static long addExact(long x, long y)
long.- Parameters:
-
x- первое значение -
y- второе значение - Returns:
- результат
- Throws:
-
ArithmeticException- если результат выходит за пределы long - Since:
- 1.8
- См. также:
subtractExact
public static int subtractExact(int x, int y)
int.- Parameters:
-
x- первое значение -
y- второе значение, которое вычитается из первого - Returns:
- результат
- Throws:
-
ArithmeticException- если результат выходит за пределы int - Since:
- 1.8
- См. также:
subtractExact
public static long subtractExact(long x, long y)
long.- Parameters:
-
x- первое значение -
y- второе значение, которое вычитается из первого - Returns:
- результат
- Throws:
-
ArithmeticException- если результат выходит за пределы long - Since:
- 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)
floorDiv(int,int), за исключением того, что он выбрасывает ArithmeticException, когда делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того, чтобы игнорировать переполнение и возвращать Integer.MIN_VALUE. Метод остатка от деления по полу floorMod(int,int) является подходящим аналогом как для этого метода, так и для метода floorDiv(int,int).
См. Math.floorDiv для примеров и сравнения с оператором целочисленного деления /.
- Параметры:
-
x- делимое -
y- делитель - Возвращает:
- наибольшее (ближайшее к положительной бесконечности) целое значение, которое меньше или равно алгебраическому частному.
- Исключения:
-
ArithmeticException- если делительyравен нулю, или делимоеxравноInteger.MIN_VALUE, а делительyравен-1. - С тех пор:
- 18
- См. также:
floorDivExact
public static long floorDivExact(long x, long y)
floorDiv(long,long), за исключением того, что он выбрасывает ArithmeticException, когда делимое равно Long.MIN_VALUE, а делитель равен -1, вместо того, чтобы игнорировать переполнение и возвращать Long.MIN_VALUE. Метод остатка от деления по полу floorMod(long,long) является подходящим аналогом как для этого метода, так и для метода floorDiv(long,long).
Для примеров см. Math.floorDiv.
- Параметры:
-
x- делимое -
y- делитель - Возвращает:
- наибольшее (ближайшее к положительной бесконечности) целое значение, которое меньше или равно алгебраическому частному.
- Исключения:
-
ArithmeticException- если делительyравен нулю, или делимоеxравноLong.MIN_VALUE, а делительyравен-1. - С тех пор:
- 18
- См. также:
ceilDivExact
public static int ceilDivExact(int x, int y)
ceilDiv(int,int), за исключением того, что он выбрасывает ArithmeticException, когда делимое равно Integer.MIN_VALUE, а делитель равен -1, вместо того, чтобы игнорировать переполнение и возвращать Integer.MIN_VALUE. Метод остатка от деления по потолку ceilMod(int,int) является подходящим аналогом как для этого метода, так и для метода ceilDiv(int,int).
См. Math.ceilDiv для примеров и сравнения с оператором целочисленного деления /.
- Параметры:
-
x- делимое -
y- делитель - Возвращает:
- наименьшее (ближайшее к отрицательной бесконечности) целое значение, которое больше или равно алгебраическому частному.
- Исключения:
-
ArithmeticException- если делительyравен нулю, или делимоеxравноInteger.MIN_VALUE, а делительyравен-1. - С тех пор:
- 18
- См. также:
ceilDivExact
public static long ceilDivExact(long x, long y)
long значение, которое больше или равно алгебраическому частному. Этот метод идентичен методу ceilDiv(long,long), за исключением того, что он генерирует исключение ArithmeticException, когда делимое равно Long.MIN_VALUE, а делитель равен -1, вместо того, чтобы игнорировать переполнение и возвращать Long.MIN_VALUE. Метод ceil модуля ceilMod(long,long) является подходящим аналогом как для этого метода, так и для метода ceilDiv(long,long).
Примеры см. в Math.ceilDiv.
- Параметры:
-
x- делимое -
y- делитель - Возвращает:
- наименьшее (ближайшее к отрицательной бесконечности)
longзначение, которое больше или равно алгебраическому частному. - Исключения:
-
ArithmeticException- если делительyравен нулю, или делимоеxравноLong.MIN_VALUE, а делительyравен-1. - С:
- 18
- См. также:
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 для примеров и сравнения с оператором целочисленного деления /.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- наибольшее (ближайшее к положительной бесконечности)
longзначение, которое меньше или равно алгебраическому частному. - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 1.8
- See Also:
floorMod
public static int floorMod(int x, int y)
Остаток по методу floor r = x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, или равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между floorDiv и floorMod такова:
floorDiv(x, y) * y + floorMod(x, y) == x
См. Math.floorMod для примеров и сравнения с оператором %.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- остаток от деления по методу floor
x - (floorDiv(x, y) * y) - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 1.8
- See Also:
floorMod
public static int floorMod(long x, int y)
long и int. Остаток по методу floor r = x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, или равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между floorDiv и floorMod такова:
floorDiv(x, y) * y + floorMod(x, y) == x
См. Math.floorMod для примеров и сравнения с оператором %.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- остаток от деления по методу floor
x - (floorDiv(x, y) * y) - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 9
- See Also:
floorMod
public static long floorMod(long x, long y)
Остаток по методу floor r = x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, или равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между floorDiv и floorMod такова:
floorDiv(x, y) * y + floorMod(x, y) == x
См. Math.floorMod для примеров и сравнения с оператором %.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- остаток от деления по методу floor
x - (floorDiv(x, y) * y) - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 1.8
- See Also:
ceilDiv
public static int ceilDiv(int x, int y)
int значение, которое больше или равно алгебраическому частному. Существует один особый случай: если делимое равно Integer.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Integer.MIN_VALUE. См. Math.ceilDiv для примеров и сравнения с оператором целочисленного деления /.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- наименьшее (ближайшее к отрицательной бесконечности)
intзначение, которое больше или равно алгебраическому частному. - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 18
- See Also:
ceilDiv
public static long ceilDiv(long x, int y)
long значение, которое больше или равно алгебраическому частному. Существует один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Long.MIN_VALUE. См. Math.ceilDiv для примеров и сравнения с оператором целочисленного деления /.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- наименьшее (ближайшее к отрицательной бесконечности)
longзначение, которое больше или равно алгебраическому частному. - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 18
- See Also:
ceilDiv
public static long ceilDiv(long x, long y)
long значение, которое больше или равно алгебраическому частному. Существует один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Long.MIN_VALUE. См. Math.ceilDiv для примеров и сравнения с оператором целочисленного деления /.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- наименьшее (ближайшее к отрицательной бесконечности)
longзначение, которое больше или равно алгебраическому частному. - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 18
- See Also:
ceilMod
public static int ceilMod(int x, int y)
Остаток по методу ceiling r = x - (ceilDiv(x, y) * y), имеет противоположный знак делителя y или равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между ceilDiv и ceilMod такова:
ceilDiv(x, y) * y + ceilMod(x, y) == x
См. Math.ceilMod для примеров и сравнения с оператором %.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- остаток от деления по методу ceiling
x - (ceilDiv(x, y) * y) - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 18
- See Also:
ceilMod
public static int ceilMod(long x, int y)
long и int. Остаток по методу ceiling r = x - (ceilDiv(x, y) * y), имеет противоположный знак делителя y или равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между ceilDiv и ceilMod такова:
ceilDiv(x, y) * y + ceilMod(x, y) == x
См. Math.ceilMod для примеров и сравнения с оператором %.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- остаток от деления по методу ceiling
x - (ceilDiv(x, y) * y) - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 18
- See Also:
ceilMod
public static long ceilMod(long x, long y)
Модуль потолка определяется как r = x - (ceilDiv(x, y) * y), имеет противоположный знак делителю y или равен нулю, и находится в диапазоне -abs(y) < r < +abs(y).
Связь между ceilDiv и ceilMod такова:
ceilDiv(x, y) * y + ceilMod(x, y) == x
См. Math.ceilMod для примеров и сравнения с оператором %.
- Параметры:
-
x- делимое -
y- делитель - Возвращает:
- модуль потолка
x - (ceilDiv(x, y) * y) - Исключения:
-
ArithmeticException- если делительyравен нулю - С:
- 18
- См. также:
abs
public static int abs(int a)
Обратите внимание, что если аргумент равен значению Integer.MIN_VALUE, самому отрицательному представимому целому значению, результатом является то же значение, которое является отрицательным. В отличие от этого, метод absExact(int) генерирует исключение ArithmeticException для этого значения.
- Параметры:
-
a- аргумент, абсолютное значение которого необходимо определить. - Возвращает:
- абсолютное значение аргумента.
- См. также:
absExact
public static int absExact(int a)
ArithmeticException, если результат выходит за пределы положительного диапазона целых чисел. Поскольку диапазон целых чисел со знаком дополнения до двух является асимметричным с одним дополнительным отрицательным значением (JLS 4.2.1), математическое абсолютное значение Integer.MIN_VALUE выходит за пределы положительного диапазона целых чисел, поэтому для этого аргумента генерируется исключение.
- Параметры:
-
a- аргумент, абсолютное значение которого необходимо определить - Возвращает:
- абсолютное значение аргумента, если переполнение не происходит
- Исключения:
-
ArithmeticException- если аргумент равенInteger.MIN_VALUE - С:
- 15
- См. также:
abs
public static long abs(long a)
Обратите внимание, что если аргумент равен значению Long.MIN_VALUE, самому отрицательному представимому длинному целому значению, результатом является то же значение, которое является отрицательным. В отличие от этого, метод absExact(long) генерирует исключение ArithmeticException для этого значения.
- Параметры:
-
a- аргумент, абсолютное значение которого необходимо определить. - Возвращает:
- абсолютное значение аргумента.
- См. также:
absExact
public static long absExact(long a)
ArithmeticException, если результат выходит за пределы положительного диапазона длинных целых чисел. Поскольку диапазон длинных целых чисел со знаком дополнения до двух является асимметричным с одним дополнительным отрицательным значением (JLS 4.2.1), математическое абсолютное значение Long.MIN_VALUE выходит за пределы положительного диапазона длинных целых чисел, поэтому для этого аргумента генерируется исключение.
- Параметры:
-
a- аргумент, абсолютное значение которого необходимо определить - Возвращает:
- абсолютное значение аргумента, если переполнение не происходит
- Исключения:
-
ArithmeticException- если аргумент равенLong.MIN_VALUE - С:
- 15
- См. также:
abs
public static float abs(float a)
- Если аргумент равен положительному или отрицательному нулю, результатом является положительный ноль.
- Если аргумент равен бесконечности, результатом является положительная бесконечность.
- Если аргумент является NaN, результатом является NaN.
- Примечание API:
- Как подразумевается выше, одно допустимое реализация данного метода задается выражением ниже, которое вычисляет
floatс тем же показателем и мантиссой, что и аргумент, но с гарантированным нулевым битом знака, указывающим на положительное значение:
Float.intBitsToFloat(0x7fffffff & Float.floatToRawIntBits(a)) - Параметры:
-
a- аргумент, абсолютное значение которого необходимо определить - Возвращает:
- абсолютное значение аргумента.
abs
public static double abs(double a)
- Если аргумент равен положительному или отрицательному нулю, результатом является положительный ноль.
- Если аргумент равен бесконечности, результатом является положительная бесконечность.
- Если аргумент является NaN, результатом является NaN.
- Примечание API:
- Как подразумевается выше, одно допустимое реализация данного метода задается выражением ниже, которое вычисляет
doubleс тем же показателем и мантиссой, что и аргумент, но с гарантированным нулевым битом знака, указывающим на положительное значение:
Double.longBitsToDouble((Double.doubleToRawLongBits(a)<<1)>>>1) - Параметры:
-
a- аргумент, абсолютное значение которого необходимо определить - Возвращает:
- абсолютное значение аргумента.
max
public static int max(int a, int b)
Integer.MAX_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.- Параметры:
-
a- аргумент. -
b- другой аргумент. - Возвращает:
- большее из
aиb.
max
public static long max(long a, long b)
Long.MAX_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.- Параметры:
-
a- аргумент. -
b- другой аргумент. - Возвращает:
- большее из
aиb.
max
public static float max(float a, float b)
- Параметры:
-
a- аргумент. -
b- другой аргумент. - Возвращает:
- большее из
aиb.
max
public static double max(double a, double b)
- Параметры:
-
a- аргумент. -
b- другой аргумент. - Возвращает:
- большее из
aиb.
min
public static int min(int a, int b)
Integer.MIN_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.- Параметры:
-
a- аргумент. -
b- другой аргумент. - Возвращает:
- меньшее из
aиb.
min
public static long min(long a, long b)
Long.MIN_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.- Параметры:
-
a- аргумент. -
b- другой аргумент. - Возвращает:
- меньшее из
aиb.
min
public static float min(float a, float b)
- Параметры:
-
a- аргумент. -
b- другой аргумент. - Возвращает:
- меньшее из
aиb.
min
public static double min(double a, double b)
- Параметры:
-
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 значения. Округление выполняется с использованием режима округления до ближайшего четного round to nearest even rounding mode. В отличие от того, как операция a * b + c была бы вычислена в обычном выражении с плавающей точкой, в ней участвуют две ошибки округления: одна для операции умножения, другая для операции сложения. Особые случаи:
- Если какой-либо аргумент равен NaN, результатом является NaN.
- Если один из первых двух аргументов бесконечен, а другой равен нулю, результатом является NaN.
- Если точное произведение первых двух аргументов бесконечно (то есть, по крайней мере, один из аргументов бесконечен, а другой не равен нулю и не равен NaN) и третье значение является бесконечностью противоположного знака, результатом является NaN.
Обратите внимание, что fusedMac(a, 1.0, c) возвращает тот же результат, что и (a + c). Однако fusedMac(a, b, +0.0) не всегда возвращает тот же результат, что и (a * b), так как fusedMac(-0.0, +0.0, +0.0) это +0.0, в то время как (-0.0 * +0.0) это -0.0; fusedMac(a, b, -0.0) эквивалентно (a * b) тем не менее.
- Примечание API:
- Этот метод соответствует операции fusedMultiplyAdd, определенной в стандарте IEEE 754-2008.
- Параметры:
-
a- значение -
b- значение -
c- значение - Возвращает:
- (a × b + c), вычисленное как если бы с неограниченным диапазоном и точностью, и округлённое один раз до ближайшего
doubleзначения - С:
- 9
fma
public static float fma(float a, float b, float c)
float значения. Округление выполняется с использованием режима округления до ближайшего четного round to nearest even rounding mode. В отличие от того, как операция a * b + c была бы вычислена в обычном выражении с плавающей точкой, в ней участвуют две ошибки округления: одна для операции умножения, другая для операции сложения. Особые случаи:
- Если какой-либо аргумент равен NaN, результатом является NaN.
- Если один из первых двух аргументов бесконечен, а другой равен нулю, результатом является NaN.
- Если точное произведение первых двух аргументов бесконечно (то есть, по крайней мере, один из аргументов бесконечен, а другой не равен нулю и не равен NaN) и третье значение является бесконечностью противоположного знака, результатом является NaN.
Обратите внимание, что fma(a, 1.0f, c) возвращает тот же результат, что и (a + c). Однако fma(a, b, +0.0f) не всегда возвращает тот же результат, что и (a * b), так как fma(-0.0f, +0.0f, +0.0f) это +0.0f, в то время как (-0.0f * +0.0f) это -0.0f; fma(a, b, -0.0f) эквивалентно (a * b) тем не менее.
- Примечание API:
- Этот метод соответствует операции fusedMultiplyAdd, определенной в стандарте IEEE 754-2008.
- Параметры:
-
a- значение -
b- значение -
c- значение - Возвращает:
- (a × b + c), вычисленное как если бы с неограниченным диапазоном и точностью, и округлённое один раз до ближайшего
floatзначения - С:
- 9
ulp
public static double ulp(double d)
ulp(-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(-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— значение с плавающей запятой, для которого требуется вернуть signum - Возвращает:
- функция signum аргумента
- С:
- 1.5
signum
public static float signum(float f)
Особые случаи:
- Если аргумент NaN, результат — NaN.
- Если аргумент — положительный или отрицательный ноль, результат совпадает с аргументом.
- Параметры:
-
f— значение с плавающей запятой, для которого требуется вернуть signum - Возвращает:
- функция signum аргумента
- С:
- 1.5
sinh
public static double sinh(double x)
Особые случаи:
- Если аргумент NaN, результат — NaN.
- Если аргумент бесконечен, результат — бесконечность с тем же знаком, что и аргумент.
- Если аргумент равен нулю, результат — ноль с тем же знаком, что и аргумент.
- Параметры:
-
x— число, для которого требуется вернуть гиперболический синус. - Возвращает:
- Гиперболический синус
x. - С:
- 1.5
cosh
public static double cosh(double x)
Особые случаи:
- Если аргумент NaN, результат — NaN.
- Если аргумент бесконечен, результат — положительная бесконечность.
- Если аргумент равен нулю, результат —
1.0.
- Параметры:
-
x— число, для которого требуется вернуть гиперболический косинус. - Возвращает:
- Гиперболический косинус
x. - С:
- 1.5
tanh
public static double tanh(double x)
Особые случаи:
- Если аргумент NaN, результат — NaN.
- Если аргумент равен нулю, результат — ноль с тем же знаком, что и аргумент.
- Если аргумент — положительная бесконечность, результат —
+1.0. - Если аргумент — отрицательная бесконечность, результат —
-1.0.
- Параметры:
-
x— число, для которого требуется вернуть гиперболический тангенс. - Возвращает:
- Гиперболический тангенс
x. - С:
- 1.5
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.
- Если аргумент — положительная бесконечность, результат — положительная бесконечность.
- Если аргумент равен -1, результат — отрицательная бесконечность.
- Если аргумент равен нулю, результат — ноль с тем же знаком, что и аргумент.
- Параметры:
-
x— значение - Возвращает:
- значение ln(
x+ 1), натуральный логарифмx+ 1 - С:
- 1.5
copySign
public static double copySign(double magnitude, double sign)
- Параметры:
-
magnitude— параметр, определяющий величину результата -
sign— параметр, определяющий знак результата - Возвращает:
- значение с величиной
magnitudeи знакомsign. - С:
- 1.6
copySign
public static float copySign(float magnitude, float sign)
- Параметры:
-
magnitude— параметр, определяющий величину результата -
sign— параметр, определяющий знак результата - Возвращает:
- значение с величиной
magnitudeи знакомsign. - С:
- 1.6
getExponent
public static int getExponent(float f)
- Если аргумент NaN или бесконечен, результат —
Float.MAX_EXPONENT+ 1. - Если аргумент равен нулю или поднормализован, результат —
Float.MIN_EXPONENT-1.
- Параметры:
-
f— значение с плавающей запятой - Возвращает:
- несмещённый показатель степени аргумента
- С:
- 1.6
getExponent
public static int getExponent(double d)
double. Особые случаи: - Если аргумент NaN или бесконечен, то результат равен
Double.MAX_EXPONENT+ 1. - Если аргумент равен нулю или субнормален, то результат равен
Double.MIN_EXPONENT-1.
- Параметры:
-
d- значение типаdouble - Возвращает:
- несмещённый порядок аргумента
- С:
- 1.6
nextAfter
public static double nextAfter(double start, double direction)
Особые случаи:
- Если любой из аргументов NaN, возвращается NaN.
- Если оба аргумента являются знаковыми нулями, возвращается
directionбез изменений (как подразумевается требованием возврата второго аргумента, если аргументы сравниваются как равные). - Если
startравно ±Double.MIN_VALUEиdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращается ноль с тем же знаком, что иstart. - Если
startбесконечен иdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращаетсяDouble.MAX_VALUEс тем же знаком, что иstart. - Если
startравно ±Double.MAX_VALUEиdirectionимеет значение, при котором результат должен иметь больший модуль, возвращается бесконечность с тем же знаком, что иstart.
- Параметры:
-
start- начальное значение с плавающей точкой -
direction- значение, указывающее, какой из соседейstartилиstartдолжен быть возвращён - Возвращает:
- Число с плавающей точкой, смежное с
startв направленииdirection. - С:
- 1.6
nextAfter
public static float nextAfter(float start, double direction)
Особые случаи:
- Если любой из аргументов NaN, возвращается NaN.
- Если оба аргумента являются знаковыми нулями, возвращается значение, эквивалентное
direction. - Если
startравно ±Float.MIN_VALUEиdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращается ноль с тем же знаком, что иstart. - Если
startбесконечен иdirectionимеет значение, при котором результат должен иметь меньший модуль, возвращаетсяFloat.MAX_VALUEс тем же знаком, что иstart. - Если
startравно ±Float.MAX_VALUEиdirectionимеет значение, при котором результат должен иметь больший модуль, возвращается бесконечность с тем же знаком, что иstart.
- Параметры:
-
start- начальное значение с плавающей точкой -
direction- значение, указывающее, какой из соседейstartилиstartдолжен быть возвращён - Возвращает:
- Число с плавающей точкой, смежное с
startв направленииdirection. - С:
- 1.6
nextUp
public static double nextUp(double d)
d в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(d,
Double.POSITIVE_INFINITY); однако, реализация nextUp может работать быстрее, чем вызов nextAfter. Особые случаи:
- Если аргумент NaN, результатом является NaN.
- Если аргумент положительная бесконечность, результатом является положительная бесконечность.
- Если аргумент равен нулю, результатом является
Double.MIN_VALUE
- Параметры:
-
d- начальное значение с плавающей точкой - Возвращает:
- Смежное значение с плавающей точкой, более близкое к положительной бесконечности.
- С:
- 1.6
nextUp
public static float nextUp(float f)
f в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(f,
Float.POSITIVE_INFINITY); однако, реализация nextUp может работать быстрее, чем вызов nextAfter. Особые случаи:
- Если аргумент NaN, результатом является NaN.
- Если аргумент положительная бесконечность, результатом является положительная бесконечность.
- Если аргумент равен нулю, результатом является
Float.MIN_VALUE
- Параметры:
-
f- начальное значение с плавающей точкой - Возвращает:
- Смежное значение с плавающей точкой, более близкое к положительной бесконечности.
- С:
- 1.6
nextDown
public static double nextDown(double d)
d в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(d,
Double.NEGATIVE_INFINITY); однако, реализация nextDown может работать быстрее, чем вызов nextAfter. Особые случаи:
- Если аргумент NaN, результатом является NaN.
- Если аргумент отрицательная бесконечность, результатом является отрицательная бесконечность.
- Если аргумент равен нулю, результатом является
-Double.MIN_VALUE
- Параметры:
-
d- начальное значение с плавающей точкой - Возвращает:
- Смежное значение с плавающей точкой, более близкое к отрицательной бесконечности.
- С:
- 1.8
nextDown
public static float nextDown(float f)
f в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(f,
Float.NEGATIVE_INFINITY); однако, реализация nextDown может работать быстрее, чем вызов nextAfter. Особые случаи:
- Если аргумент NaN, результатом является NaN.
- Если аргумент отрицательная бесконечность, результатом является отрицательная бесконечность.
- Если аргумент равен нулю, результатом является
-Float.MIN_VALUE
- Параметры:
-
f- начальное значение с плавающей точкой - Возвращает:
- Смежное значение с плавающей точкой, более близкое к отрицательной бесконечности.
- С:
- 1.8
scalb
public static double scalb(double d, int scaleFactor)
d × 2scaleFactor, округлённое как если бы это выполнялось одним правильно округлённым умножением с плавающей точкой. Если порядок результата находится между Double.MIN_EXPONENT и Double.MAX_EXPONENT, ответ вычисляется точно. Если порядок результата будет больше
Double.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является субнормальным, то точность может быть потеряна; то есть, когда scalb(x, n) субнормальное, scalb(scalb(x, n),
-n) может не равняться x. Когда результат не NaN, результат имеет тот же знак, что и d. Особые случаи:
- Если первый аргумент NaN, возвращается NaN.
- Если первый аргумент бесконечен, возвращается бесконечность с тем же знаком.
- Если первый аргумент равен нулю, возвращается ноль с тем же знаком.
- Параметры:
-
d- число, которое необходимо масштабировать с помощью степени двойки. -
scaleFactor- степень двойки, используемая для масштабированияd - Возвращает:
-
d× 2scaleFactor - С:
- 1.6
scalb
public static float scalb(float f, int scaleFactor)
f × 2scaleFactor, округлённое как если бы это выполнялось одним правильно округлённым умножением с плавающей точкой. Если порядок результата находится между Float.MIN_EXPONENT и Float.MAX_EXPONENT, ответ вычисляется точно. Если порядок результата будет больше
Float.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является субнормальным, то точность может быть потеряна; то есть, когда scalb(x, n) субнормальное, scalb(scalb(x, n),
-n) может не равняться x. Когда результат не NaN, результат имеет тот же знак, что и f. Особые случаи:
- Если первый аргумент NaN, возвращается NaN.
- Если первый аргумент бесконечен, возвращается бесконечность с тем же знаком.
- Если первый аргумент равен нулю, возвращается ноль с тем же знаком.
- Параметры:
-
f- число, которое необходимо масштабировать с помощью степени двойки. -
scaleFactor- степень двойки, используемая для масштабированияf - Возвращает:
-
f× 2scaleFactor - С:
- 1.6
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/StrictMath.html