Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Числа и Строки
Раздел: Числа
Вне Основной Арифметики
Домашняя страница > Изучение Языка Java > Числа и Строки

Вне Основной Арифметики

Язык программирования Java поддерживает основную арифметику со своими арифметическими операторами: +, - *,/, и %. Math class в java.lang пакет обеспечивает методы и константы для того, чтобы сделать более усовершенствованное математическое вычисление.

Методы в Math class является всеми помехами, таким образом, Вы вызываете их непосредственно от class, как это:

Math.cos(angle);

Отметьте: Используя static import функция языка, Вы не должны записать Math перед каждой математической функцией:
import static java.lang.Math.*;

Это позволяет Вам вызывать Math Методы class их простыми именами. Например:

cos(angle);

Константы и Основные Методы

Math class включает две константы:

Math class также включает больше чем 40 статических методов. Следующая таблица приводит много основных методов.

Основные Математические Методы
Метод Описание
double abs(double d)
float abs(float f)
int abs(int i)
long abs(long lng)
Возвращает абсолютное значение параметра.
double ceil(double d) Возвращает самое маленькое целое число, которое больше чем или равно параметру. Возвращенный как двойное.
double floor(double d) Возвращает самое большое целое число, которое меньше чем или равно параметру. Возвращенный как двойное.
double rint(double d) Возвращает целое число, которое является самым близким в значении к параметру. Возвращенный как двойное.
long round(double d)
int round(float f)
Возвращает самое близкое длинное или международное, как обозначено типом возврата метода, к параметру.
double min(double arg1, double arg2)
float min(float arg1, float arg2)
int min(int arg1, int arg2)
long min(long arg1, long arg2)
Возвращает меньшие из этих двух параметров.
double max(double arg1, double arg2)
float max(float arg1, float arg2)
int max(int arg1, int arg2)
long max(long arg1, long arg2)
Возвращает большие из этих двух параметров.

Следующая программа, BasicMathDemo , иллюстрирует, как использовать некоторые из этих методов:


public class BasicMathDemo {
    public static void main(String[] args) {
        double a = -191.635;
        double b = 43.74;
        int c = 16, d = 45;

        System.out.printf("The absolute value " +
                          "of %.3f is %.3f%n", 
                          a, Math.abs(a));

        System.out.printf("The ceiling of " +
                          "%.2f is %.0f%n", 
                          b, Math.ceil(b));

        System.out.printf("The floor of " +
                          "%.2f is %.0f%n", 
                          b, Math.floor(b));

        System.out.printf("The rint of %.2f " +
                          "is %.0f%n", 
                          b, Math.rint(b));

        System.out.printf("The max of %d and " + 
                          "%d is %d%n",
                          c, d, Math.max(c, d));

        System.out.printf("The min of of %d " + 
                          "and %d is %d%n",
                          c, d, Math.min(c, d));
    }
}

Вот вывод из этой программы:

The absolute value of -191.635 is 191.635
The ceiling of 43.74 is 44
The floor of 43.74 is 43
The rint of 43.74 is 44
The max of 16 and 45 is 45
The min of 16 and 45 is 16

Экспоненциальные и Логарифмические Методы

Следующая таблица приводит экспоненциальные и логарифмические методы Math class.

Экспоненциальные и Логарифмические Методы
Метод Описание
double exp(double d) Возвращает основу натуральных логарифмов, e, к питанию параметра.
double log(double d) Возвращает натуральный логарифм параметра.
double pow(double base, double exponent) Возвращает значение первого параметра, возведенного в степень второго параметра.
double sqrt(double d) Возвращает квадратный корень параметра.

Следующая программа, ExponentialDemo, выводит на экран значение e, тогда вызовы каждый из методов перечисляли в предыдущей таблице на произвольно выбранных числах:


public class ExponentialDemo {
    public static void main(String[] args) {
        double x = 11.635;
        double y = 2.76;

        System.out.printf("The value of " + 
                          "e is %.4f%n",
                          Math.E);

        System.out.printf("exp(%.3f) " +
                          "is %.3f%n",
                          x, Math.exp(x));

        System.out.printf("log(%.3f) is " +
                          "%.3f%n",
                          x, Math.log(x));

        System.out.printf("pow(%.3f, %.3f) " +
                          "is %.3f%n",
                          x, y, Math.pow(x, y));

        System.out.printf("sqrt(%.3f) is " +
                          "%.3f%n",
                          x, Math.sqrt(x));
    }
}

Вот вывод, который Вы будете видеть, когда Вы будете работать ExponentialDemo:

The value of e is 2.7183
exp(11.635) is 112983.831
log(11.635) is 2.454
pow(11.635, 2.760) is 874.008
sqrt(11.635) is 3.411

Тригонометрические Методы

Math class также обеспечивает набор тригонометрических функций, которые получаются в итоге в следующей таблице. Значение, которое передают в каждый из этих методов, является углом, выраженным в радианах. Можно использовать toRadians метод, чтобы преобразовать от градусов до радианов.

Тригонометрические Методы
Метод Описание
double sin(double d) Возвращает синус указанного двойного значения.
double cos(double d) Возвращает косинус указанного двойного значения.
double tan(double d) Возвращает касательную указанного двойного значения.
double asin(double d) Возвращает arcsine указанного двойного значения.
double acos(double d) Возвращает arccosine указанного двойного значения.
double atan(double d) Возвращает арктангенс указанного двойного значения.
double atan2(double y, double x) Преобразовывает прямоугольные координаты (x, y) к полярной координате (r, theta) и возвраты theta.
double toDegrees(double d)
double toRadians(double d)
Преобразовывает параметр градусам или радианам.

Вот программа, TrigonometricDemo, это использует каждый из этих методов, чтобы вычислить различные тригонометрические значения для угла на 45 градусов:


public class TrigonometricDemo {
    public static void main(String[] args) {
        double degrees = 45.0;
        double radians = Math.toRadians(degrees);
        
        System.out.format("The value of pi " + 
                          "is %.4f%n",
                           Math.PI);

        System.out.format("The sine of %.1f " +
                          "degrees is %.4f%n",
                          degrees, 
                          Math.sin(radians));

        System.out.format("The cosine of %.1f " +
                          "degrees is %.4f%n",
                          degrees, 
                          Math.cos(radians));

        System.out.format("The tangent of %.1f " +
                          "degrees is %.4f%n",
                          degrees, 
                          Math.tan(radians));

        System.out.format("The arcsine of %.4f " +
                          "is %.4f degrees %n", 
                          Math.sin(radians), 
                          Math.toDegrees(Math.asin(Math.sin(radians))));

        System.out.format("The arccosine of %.4f " +
                          "is %.4f degrees %n", 
                          Math.cos(radians),  
                          Math.toDegrees(Math.acos(Math.cos(radians))));

        System.out.format("The arctangent of %.4f " +
                          "is %.4f degrees %n", 
                          Math.tan(radians), 
                          Math.toDegrees(Math.atan(Math.tan(radians))));
    }
}

Вывод этой программы следующие:

The value of pi is 3.1416
The sine of 45.0 degrees is 0.7071
The cosine of 45.0 degrees is 0.7071
The tangent of 45.0 degrees is 1.0000
The arcsine of 0.7071 is 45.0000 degrees
The arccosine of 0.7071 is 45.0000 degrees
The arctangent of 1.0000 is 45.0000 degrees

Случайные числа

random() метод возвращает псевдобеспорядочно выбранное число между 0.0 и 1.0. Диапазон включает 0.0, но не 1.0. Другими словами: 0.0 <= Math.random() < 1.0. Чтобы получить число в различном диапазоне, можно выполнить арифметику на значении, возвращенном случайным методом. Например, чтобы генерировать целое число между 0 и 9, Вы записали бы:

int number = (int)(Math.random() * 10);

Умножая значение на 10, диапазон возможных значений становится 0.0 <= number < 10.0.

Используя Math.random работы хорошо, когда Вы должны генерировать единственное случайное число. Если Вы должны генерировать серию случайных чисел, следует создать экземпляр java.util.Random и вызовите методы на тот объект генерировать числа.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Форматирование Числового Вывода Печати
Следующая страница: Сводка Чисел