Главная » Java » Math и strictMath

0

 

  Класс Math содержит набор констант и статических методов, позволяющих выполнять традиционные математические операции в рамках обычной модели представления чисел с плавающей запятой. Класс StrictMath охватывает те же константы и методы, но все они определены в терминах точной арифметики с плавающей запятой (strict floating-point arithmetic) (см. раздел 6.6.3). Иными словами, в этом режиме гарантируется использование определенных алгоритмов с целью получения равноценных и воспроизводимых результатов в среде всех виртуальных машин Java; в то же время результаты выполнения методов класса Math могут варьироваться в некоторых пределах. В обоих классах имеются две полезные константы типа double: E представляет число е (2.7182818284590452354), служащее основанием натурального логарифма, а PI — число л (3.14159265358979323846). В следующей таблице перечислены методы классов Math и StrictMath; значения всех угловых аргументов выражаются в радианах, а параметры и возвращаемые значения относятся к типу double, если иное не оговорено особо.

 

Метод                       Описание

 

sin(a)                         Синус от а

 

cos(a)                        Косинус от а

 

 tan(a)                       Тангенс от а

 

asin(v)                      Арксинус от v, где v принадлежит интервалу [-1.0, 1.0]

 

 

Метод                                                          Описание

 

acos(v)                                 Арккосинус от v, где v принадлежит интервалу [-1.0, 1.0]

atan (v)                                Арктангенс от v; результат принадлежит интервалу [-?/2, ? /2]

atan2(x,  у)                          Арктангенс от х/у; результат принадлежит интервалу [-?,?]

toRadians(d)                        Преобразует значение угла d, выраженное в градусах, в радианы

toDegrees(r)                         Преобразует значение угла r, выраженное в радианах, в градусы

 

exp(x)                                   е^x

pow(y,   x)                            y^x

log(x)                                   Натуральный логарифм от х

sqrt(x)                                  Квадратный корень от х

ceil(x)                                   Наименьшее целое, большее или равное х

floor(x)                                 Наибольшее целое, меньшее или равное х

rint(x)                                   Значение х, округленное до ближайшего целого; если ни одно из соседних

                                              целых не   является ближайшим, округление производится до четного числа

round(x)                                (int)floor(x + 0. 5) для х типа float;

                                             (long)floor(x + 0. 5) для х типа double

abs(x)                                   Абсолютное значение от х для любого числового типа

 max(x,   y)                          Наибольшее из двух значений, х и у, для любого числового типа

min(x,   y)                            Наименьшее из двух значений, х и у, для любого числового типа

 

 

 

   Статический метод IEEEremainder вычисляет остаток от деления одного аргумента double на другой в соответствии с требованиями, регламентируемыми стандартом IEEE-754. Оператор же %, рассмотренный в разделе 6.6.1, подчиняется правилу

 

                 (х/у)*у + х%у = = х

 

Оператор % сохраняет свойство симметрии результатов относительно нуля при перемене знака одного из аргументов: если x%у равно z, тогда при изменении знака любого из аргументов, x или у, z поменяет только знак, но не абсолютное значение. Так, например, 7%2.5 есть 2.0, а -7%2. 5  — -2.0. Стандарт IEEE предусматривает алгоритм вычисления остатка, поддерживающий иной тип симметрии: так, результатом вызова IEEEremainder(-7, 2.5) будет 0.5, т.е. итоговое значение в подобных случаях сдвигается по числовой оси на у единиц.

   При реализации методов класса StrictMath использованы те же алгоритмы, которые применены в библиотеке математических функций FDLIBM для языка программирования С. За полной информацией, имеющей отношение к этой теме, обращайтесь к документу The Java™ Language Specification.

   Статический метод  random генерирует псевдослучайное число г,  принадлежащее интервалу  [0.0, 1.0). Более мощные средства управления процессом получения псевдослучайных чисел предоставляет класс Random (см. раздел 17.3).

      Сведения о других классах, обеспечивающих поддержку математических вычислений, приведены в разделе 20.4 .

 

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии