Освой программирование играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Класс Math содержит методы, связанные с геометрией и тригонометрией и прочей математики. Методы реализованы как static, поэтому можно сразу вызывать через Math.methodName() без создания экземпляра класса.
В классе определены две константы типа double: E и PI.
Популярные методы для тригонометрических функций принимают параметр типа double, выражающий угол в радианах.
Существуют также гиперболические функции: sinh(), cosh(), tanh().
Экспоненциальные функции: cbrt(), exp(), expm1(), log(), log10(), log1p(), pow(), scalb(), sqrt().
Из них хорошо знакомы возведение в степень - pow(2.0, 3.0) вернёт 8.0.
Также популярен метод для извлечения квадратного корня - sqrt(4.0). Если аргумент меньше нуля, то возвращается NaN. Похожий метод cbrt() извлекает кубический корень. Если аргумент отрицательный, то и возвращаемое значение будет отрицательным: -27.0-> -3.0.
Функции округления:
Другие методы
Вычислим наибольшее и наименьшее числа из двух заданных значений.
double value1 = 9.14;
double value2 = 9.15;
System.out.println("Maximum of value1 and value2 is " + Math.max(value1, value2));
System.out.println("Minimum of value1 and value2 is " + Math.min(value1, value2));
Если вам не хватает точности основных типов для представления целых и вещественных чисел, то можно использовать классы BigInteger и BigDecimal из пакета java.math, которые предназначены для выполнения действий с числами, состоящими из произвольного количества цифр.
Для преобразования обычного числа в число с произвольной точностью (называемое большим числом) вызывается статический метод valueOf():
BigInteger bigIntegerA = BigInteger.valueOf(42);
При работе с большими числами нельзя использовать привычные математические операции с помощью + или * и т.п. Вместо них следует использовать специальные методы add() (сложение), multiply() (умножение), divide() (деление) и т.д.
BigInteger bigIntegerA = BigInteger.valueOf(42);
BigInteger bigItBigIntegerB = bigIntegerA.add(bigIntegerA);
BigInteger bigIntegerC = bigIntegerA.multiply(bigIntegerA);
В обычной практике эти числа используются редко.