java.lang.Math – типичный utility-класс с только статическими членами и закрытым конструктором. Он предоставляет набор математических функций. Условно члены класса можно разделить на следующие категории:
Основные математические функции. Общепринятые математические действия, для которых не нашлось операторов в синтаксисе языка Java.
Основные математические функции |
|---|
| exp | Экспонента – число Эйлера (e) в степени х |
| log | Натуральный логарифм |
| log10 | Десятичный логарифм |
| sqrt | Квадратный корень |
| cbrt | Кубический корень |
| pow | Cтепень |
| abs | Mодуль |
| max | Максимум из двух чисел |
| min | Минимум из двух чисел |
| signum | Сигнум |
| random | Псевдослучайное число в интервале [0;1) |
Тригонометрия. Важные функции из соответствующего
раздела математики.
Тригонометрия |
|---|
| sin | Синус |
| cos | Косинус |
| tan | Тангенс |
| asin | Арксинус |
| acos | Арккосинус |
| atan | Арктангенс |
| sinh | Гиперболический синус |
| cosh | Гиперболический косинус |
| tanh | Гиперболический тангенс |
| atan2 | Зенитный угол по прямоугольным координатам |
Защита от переполнения. Если
Integer.MAX_VALUE увеличить на 1, получится
Integer.MIN_VALUE. При переполнении максимально возможного значения, оно «идет по кругу». История помнит,
как дорого может стоить эта ошибка. Набор специальных функций помогает работать с переполнениями безопаснее.
Защита от переполнения |
|---|
| addExact | Сложение с выбросом исключения при переполнении |
| subtractExact | Вычитание с выбросом исключения при переполнении |
| multiplyExact | Умножение с выбросом исключения при переполнении |
| incrementExact | Инкремент (x++) с выбросом исключения при переполнении |
| decrementExact | Декремент (x--) с выбросом исключения при переполнении |
| negateExact | Смена знака (-x) с выбросом исключения при переполнении |
| toIntExact | Сужение типа long→int с выбросом исключения при переполнении |
| multiplyFull | Произведение с расширением типа int→long |
| multiplyHigh | Старшие биты произведения при переполнении |
Комбинации математических операций. Часто используемые сочетания функций, которые вместе могут быть вычислены компьютером эффективнее, чем если вызывать по отдельности. Как пример, среднее квадратическое:
sqrt(x^2 + y^2).
Комбинации математических операций |
|---|
| floorDiv | floor(x/y) |
| floorMod | floor(x%y) |
| fma | a*b+c |
| hypot | Среднее квадратическое: sqrt(x^2+y^2) |
| expm1 | e^x - 1 |
| log1p | ln(1 + x) |
| copySign | x*signum(y) |
| scalb | x*2^y |
IEEE754. Из-за
особенностей хранения в компьютере чисел с плавающей точкой, расстояние между двумя соседними числами бывает разным. Это расстояние называется
ulp (units in the last place). Набор методов дает возможность работать с этим значением. В терминах ulp также определяется точность всех методов
Math по работе с дробными числами.
IEEE754 |
|---|
| IEEEremainder | Остаток от деления по IEEE754 |
| ulp | Расстояние до следующего числа с плавающей точкой |
| getExponent | Экспонента числа с плавающей точкой |
| nextAfter | Следующее за x число с плавающей точкой в сторону y |
| nextUp | Следующее число с плавающей точкой |
| nextDown | Предыдущее число с плавающей точкой |
Округление. Поиск ближайших к заданному целых чисел.
Округление |
|---|
| ceil | Округление вверх |
| floor | Округление вниз |
| rint | Отбрасывание нецелой погрешности числа с плавающей точкой |
| round | Округление к ближайшему целому |
Конвертация углов. Из градусов в
радианы и обратно.
Конвертация углов |
|---|
| toRadians | Градусы в радианы |
| toDegrees | Радианы в градусы |
Константы. Число Пи и число Эйлера.
Константы |
|---|
| E | Число Эйлера (e) |
| PI | Число Пи |