Класс StrictMath
public final class StrictMath extends Object
StrictMath содержит методы для выполнения основных числовых операций, таких как элементарные экспоненциальные, логарифмические, квадратные корни и тригонометрические функции. Для повышения переносимости программ Java, определения некоторых числовых функций в этом пакете требуют, чтобы они давали те же результаты, что и определённые опубликованные алгоритмы. Эти алгоритмы доступны из известной сетевой библиотеки netlib как пакет "Freely Distributable Math Library", fdlibm. Эти алгоритмы, написанные на языке программирования C, затем должны пониматься как выполняемые со всеми операциями с плавающей запятой, следующими правилам арифметики с плавающей запятой Java.
Библиотека математических функций 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 и необходимо обнаруживать ошибки переполнения, методы addExact, subtractExact, multiplyExact, toIntExact, incrementExact, decrementExact и negateExact выбрасывают исключение ArithmeticException при переполнении результатов. Для арифметических операций деления и абсолютного значения переполнение происходит только при определённом минимальном или максимальном значении и должно проверяться относительно минимума или максимума соответственно.
Рекомендуемые операции IEEE 754
КлассMath обсуждает, как общие критерии реализации для выбранных Math и StrictMath методов относятся к рекомендуемым операциям IEEE 754.- С тех пор:
- 1.3
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final double |
E |
Значение double , наиболее близкое к e, основа натуральных логарифмов. |
static final double |
PI |
Значение double , наиболее близкое к π, отношению длины окружности к диаметру. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 до π. |
static int |
addExact |
Возвращает сумму аргументов, выбрасывая исключение, если результат выходит за пределы int. |
static long |
addExact |
Возвращает сумму аргументов, выбрасывая исключение, если результат выходит за пределы long. |
static double |
asin |
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от -π/2 до π/2. |
static double |
atan |
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от -π/2 до π/2. |
static double |
atan2 |
Возвращает угол θ из преобразования декартовых координат ( x, y) в полярные координаты (r, θ). |
static double |
cbrt |
Возвращает кубический корень из значения double. |
static double |
ceil |
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение double, которое больше или равно аргументу и равно математическому целому числу. |
static double |
copySign |
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой. |
static float |
copySign |
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой. |
static double |
cos |
Возвращает тригонометрический косинус угла. |
static double |
cosh |
Возвращает гиперболический косинус значения double. |
static int |
decrementExact |
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат выходит за пределы int. |
static long |
decrementExact |
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат выходит за пределы 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 |
floorMod |
Возвращает остаток от деления по модулю первого аргумента на второй. |
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 |
Возвращает логарифм по основанию 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 аргумента. |
Подробное описание полей
E
public static final double E
- См. также:
PI
public static final double PI
- См. также:
Подробное описание методов
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.
- Если аргумент ноль, результат — ноль с тем же знаком, что и аргумент.
- Если аргумент бесконечный, результат — значение, наиболее близкое к π/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 значения. Особые случаи: - Если аргумент NaN или меньше нуля, результат NaN.
- Если аргумент положительная бесконечность, результат положительная бесконечность.
- Если аргумент положительный или отрицательный ноль, результат отрицательная бесконечность.
- Если аргумент равен 10n для целого n, результат — n. В частности, если аргумент
1.0(100), результат — положительный ноль.
- Параметры:
-
a- значение - Возвращает:
- логарифм по основанию 10
a. - С:
- 1.5
sqrt
public static double sqrt(double a)
double значения. Особые случаи: - Если аргумент NaN или меньше нуля, результат NaN.
- Если аргумент положительная бесконечность, результат положительная бесконечность.
- Если аргумент положительный или отрицательный ноль, результат такой же, как и аргумент.
double значение, наиболее близкое к истинному математическому квадратному корню из значения аргумента.- Параметры:
-
a- значение. - Возвращает:
- положительный квадратный корень из
a.
cbrt
public static double cbrt(double a)
double значения. Для положительных конечных значений x, cbrt(-x) ==
-cbrt(x); то есть кубический корень из отрицательного значения — это отрицание кубического корня из абсолютного значения этого значения. Особые случаи: - Если аргумент NaN, результат NaN.
- Если аргумент бесконечен, результат — бесконечность с тем же знаком, что и аргумент.
- Если аргумент ноль, результат — ноль с тем же знаком, что и аргумент.
- Параметры:
-
a- значение. - Возвращает:
- кубический корень из
a. - С:
- 1.5
IEEEremainder
public static double IEEEremainder(double f1, double f2)
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:
- Определения особых случаев этого метода отличаются от определений особых случаев рекомендуемой операции IEEE 754 для ±
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
- См. также:
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. Переполнение происходит только для минимального значения.- Parameters:
-
a- значение для отрицания - Returns:
- результат
- Throws:
-
ArithmeticException- если результат выходит за пределы int - Since:
- 14
- See Also:
negateExact
public static long negateExact(long a)
long. Переполнение происходит только для минимального значения.- Parameters:
-
a- значение для отрицания - Returns:
- результат
- Throws:
-
ArithmeticException- если результат выходит за пределы long - Since:
- 14
- See Also:
toIntExact
public static int toIntExact(long value)
long аргумента, выбрасывая исключение, если значение выходит за пределы int. - Parameters:
-
value- значение long - Returns:
- аргумент как int
- Throws:
-
ArithmeticException- если значениеargumentвыходит за пределы int - Since:
- 1.8
- See Also:
multiplyFull
public static long multiplyFull(int x, int y)
- Parameters:
-
x- первое значение -
y- второе значение - Returns:
- результат
- Since:
- 9
- See Also:
multiplyHigh
public static long multiplyHigh(long x, long y)
long самые старшие 64 бита 128-битного произведения двух 64-битных множителей.- Parameters:
-
x- первое значение -
y- второе значение - Returns:
- результат
- Since:
- 9
- See Also:
floorDiv
public static int floorDiv(int x, int y)
int значение, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Integer.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Integer.MIN_VALUE. См. Math.floorDiv для примеров и сравнения с оператором целочисленного деления /.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- наибольшее (ближайшее к положительной бесконечности)
intзначение, которое меньше или равно алгебраическому частному. - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 1.8
- See Also:
floorDiv
public static long floorDiv(long x, int y)
long значение, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Long.MIN_VALUE. См. Math.floorDiv для примеров и сравнения с оператором целочисленного деления /.
- Parameters:
-
x- делимое -
y- делитель - Returns:
- наибольшее (ближайшее к положительной бесконечности)
intзначение, которое меньше или равно алгебраическому частному. - Throws:
-
ArithmeticException- если делительyравен нулю - Since:
- 9
- See Also:
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 — это 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 — это 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 — это 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:
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, генерируя ArithmeticException исключение, если результат выходит за пределы положительного диапазона int . Поскольку диапазон целых чисел со знаком дополнения к двум асимметричен, имея на одну отрицательную величину больше (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, генерируя ArithmeticException исключение, если результат выходит за пределы положительного диапазона long . Поскольку диапазон целых чисел со знаком дополнения к двум асимметричен, имея на одну отрицательную величину больше (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.
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 значением с плавающей запятой, следующим за ним по величине. Обратите внимание, что для не-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 значением с плавающей запятой, следующим за ним по величине. Обратите внимание, что для не-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- значение с плавающей запятой, для которого необходимо получить 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.
- Если аргумент — положительная бесконечность, то результат — положительная бесконечность.
- Если аргумент — минус один, то результат — минус бесконечность.
- Если аргумент — ноль, то результат — ноль с тем же знаком, что и аргумент.
- Параметры:
-
x- значение - Возвращает:
- значение ln(
x+ 1), натуральный логарифмx+ 1 - С:
- 1.5
copySign
public static double copySign(double magnitude, double sign)
sign аргумент всегда обрабатывается как положительный.- Параметры:
-
magnitude- параметр, определяющий величину результата -
sign- параметр, определяющий знак результата - Возвращает:
- значение с величиной
magnitudeи знакомsign. - С:
- 1.6
copySign
public static float copySign(float magnitude, float sign)
sign всегда обрабатывается как положительный.- Параметры:
-
magnitude- параметр, определяющий величину результата -
sign- параметр, определяющий знак результата - Возвращает:
- значение с величиной
magnitudeи знакомsign. - С:
- 1.6
getExponent
public static int getExponent(float f)
float. Особые случаи: - Если аргумент — NaN или бесконечность, то результат —
Float.MAX_EXPONENT+ 1. - Если аргумент — ноль или подобъект, то результат —
Float.MIN_EXPONENT-1.
- Параметры:
-
f- значениеfloat - Возвращает:
- несмещённый показатель степени аргумента
- С:
- 1.6
getExponent
public static int getExponent(double d)
double. Особые случаи: - Если аргумент — NaN или бесконечность, то результат —
Double.MAX_EXPONENT+ 1. - Если аргумент — ноль или подобъект, то результат —
Double.MIN_EXPONENT-1.
- Параметры:
-
d- значениеdouble - Возвращает:
- несмещённый показатель степени аргумента
- С:
- 1.6
nextAfter
public static double nextAfter(double start, double direction)
Особые случаи:
- Если любой из аргументов — NaN, возвращается NaN.
- Если оба аргумента — знаковые нули, возвращается
directionбез изменений (как подразумевается требованием возвращения второго аргумента, если аргументы сравниваются как равные). - Если
startравно ±Double.MIN_VALUEиdirectionимеет значение, такое что результат должен иметь меньшую величину, возвращается ноль с тем же знаком, что иstart. - Если
start— бесконечность иdirectionимеет значение, такое что результат должен иметь меньшую величину, возвращаетсяDouble.MAX_VALUEс тем же знаком, что иstart. - Если
startравно ±Double.MAX_VALUEиdirectionимеет значение, такое что результат должен иметь большую величину, возвращается бесконечность с тем же знаком, что иstart.
- Параметры:
-
start- начальное значение с плавающей точкой -
direction- значение, указывающее, какой из соседейstartилиstartдолжен быть возвращён - Возвращает:
- Число с плавающей точкой, смежное с
startв направленииdirection. - С:
- 1.6
nextAfter
public static float nextAfter(float start, double direction)
Особые случаи:
- Если любой из аргументов — NaN, возвращается NaN.
- Если оба аргумента — знаковые нули, возвращается значение, эквивалентное
direction. - Если
startравно ±Float.MIN_VALUEиdirectionимеет значение, такое что результат должен иметь меньшую величину, возвращается ноль с тем же знаком, что иstart. - Если
start— бесконечность иdirectionимеет значение, такое что результат должен иметь меньшую величину, возвращаетсяFloat.MAX_VALUEс тем же знаком, что иstart. - Если
startравно ±Float.MAX_VALUEиdirectionимеет значение, такое что результат должен иметь большую величину, возвращается бесконечность с тем же знаком, что иstart.
- Параметры:
-
start- начальное значение с плавающей точкой -
direction- значение, указывающее, какой из соседейstartилиstartдолжен быть возвращён - Возвращает:
- Число с плавающей точкой, смежное с
startв направленииdirection. - С:
- 1.6
nextUp
public static double nextUp(double d)
d в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(d,
Double.POSITIVE_INFINITY); однако, реализация nextUp может выполняться быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент — NaN, результат — NaN.
- Если аргумент — положительная бесконечность, результат — положительная бесконечность.
- Если аргумент — ноль, результат —
Double.MIN_VALUE
- Параметры:
-
d- начальное значение с плавающей точкой - Возвращает:
- Смежное значение с плавающей точкой, более близкое к положительной бесконечности.
- С:
- 1.6
nextUp
public static float nextUp(float f)
f в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(f,
Float.POSITIVE_INFINITY); однако, реализация nextUp может выполняться быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент — NaN, результат — NaN.
- Если аргумент — положительная бесконечность, результат — положительная бесконечность.
- Если аргумент — ноль, результат —
Float.MIN_VALUE
- Параметры:
-
f- начальное значение с плавающей точкой - Возвращает:
- Смежное значение с плавающей точкой, более близкое к положительной бесконечности.
- С:
- 1.6
nextDown
public static double nextDown(double d)
d в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(d,
Double.NEGATIVE_INFINITY); однако, реализация nextDown может выполняться быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент является NaN, результатом является NaN.
- Если аргумент является отрицательной бесконечностью, результатом является отрицательная бесконечность.
- Если аргумент равен нулю, результатом является
-Double.MIN_VALUE
- Параметры:
-
d- начальное значение с плавающей запятой - Возвращает:
- Смежное значение с плавающей запятой, более близкое к отрицательной бесконечности.
- С:
- 1.8
nextDown
public static float nextDown(float f)
f в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(f,
Float.NEGATIVE_INFINITY); однако, реализация nextDown может выполняться быстрее, чем эквивалентный вызов nextAfter. Особые случаи:
- Если аргумент является NaN, результатом является NaN.
- Если аргумент является отрицательной бесконечностью, результатом является отрицательная бесконечность.
- Если аргумент равен нулю, результатом является
-Float.MIN_VALUE
- Параметры:
-
f- начальное значение с плавающей запятой - Возвращает:
- Смежное значение с плавающей запятой, более близкое к отрицательной бесконечности.
- С:
- 1.8
scalb
public static double scalb(double d, int scaleFactor)
d × 2scaleFactor, округлённое так, как если бы оно было выполнено одним правильно округлённым умножением с плавающей запятой. Если показатель степени результата находится между Double.MIN_EXPONENT и Double.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата будет больше
Double.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является поднормальным, то точность может быть потеряна; то есть, когда scalb(x, n) является поднормальным, scalb(scalb(x, n),
-n) может не равняться x. Когда результат не NaN, результат имеет тот же знак, что и d. Особые случаи:
- Если первый аргумент NaN, возвращается NaN.
- Если первый аргумент бесконечен, возвращается бесконечность того же знака.
- Если первый аргумент равен нулю, возвращается ноль того же знака.
- Параметры:
-
d- число, которое нужно масштабировать с помощью степени двойки. -
scaleFactor- степень двойки, используемая для масштабированияd - Возвращает:
-
d× 2scaleFactor - С:
- 1.6
scalb
public static float scalb(float f, int scaleFactor)
f × 2scaleFactor, округлённое так, как если бы оно было выполнено одним правильно округлённым умножением с плавающей запятой. Если показатель степени результата находится между Float.MIN_EXPONENT и Float.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата будет больше
Float.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является поднормальным, то точность может быть потеряна; то есть, когда scalb(x, n) является поднормальным, scalb(scalb(x, n),
-n) может не равняться x. Когда результат не NaN, результат имеет тот же знак, что и f. Особые случаи:
- Если первый аргумент NaN, возвращается NaN.
- Если первый аргумент бесконечен, возвращается бесконечность того же знака.
- Если первый аргумент равен нулю, возвращается ноль того же знака.
- Параметры:
-
f- число, которое нужно масштабировать с помощью степени двойки. -
scaleFactor- степень двойки, используемая для масштабированияf - Возвращает:
-
f× 2scaleFactor - С:
- 1.6
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/StrictMath.html