- Класс Math и пакет java.math
- Большие числа
- Android studio математические операции
- Арифметические операторы в Java
- Операции с присваиванием
- Инкрементирование и декрементирование
- Математические функции и константы (класс Math)
- BestProg
- Операции. Арифметические операции
- ⇑
- ⇑
- ⇑
- ⇑
- ⇑
- ⇑
- Дополнительные классы
- Математические вычисления и класс Math
- Операции над числами в Java
- Унарные операции
- Комбинированные операции
- Логические операции
Класс Math и пакет java.math
Класс Math содержит методы, связанные с геометрией и тригонометрией и прочей математики. Методы реализованы как static, поэтому можно сразу вызывать через Math.methodName() без создания экземпляра класса.
В классе определены две константы типа double: E и PI.
Популярные методы для тригонометрических функций принимают параметр типа double, выражающий угол в радианах.
- sin(double d)
- cos(double d)
- tan(double d)
- asin(double d)
- acos(double d)
- atan(double d)
- atan2(double y, double x)
Существуют также гиперболические функции: sinh(), cosh(), tanh().
Из них хорошо знакомы возведение в степень — pow(2.0, 3.0) вернёт 8.0.
Также популярен метод для извлечения квадратного корня — sqrt(4.0). Если аргумент меньше нуля, то возвращается NaN. Похожий метод cbrt() извлекает кубический корень. Если аргумент отрицательный, то и возвращаемое значение будет отрицательным: -27.0-> -3.0.
- abs() — возвращает абсолютное значение аргумента
- ceil() — возвращает наименьшее целое число, которое больше аргумента
- floor() — возвращает наибольшее целое число, которое меньше или равно аргументу
- max() — возвращает большее из двух чисел
- min() — возвращает меньшее из двух чисел
- nextAfter() — возвращает следующее значение после аргумента в заданном направлении
- nextUp() — возвращает следующее значение в положительном направлении
- rint() — возвращает ближайшее целое к аргументу
- round() — возвращает аргумент, округлённый вверх до ближайшего числа
- ulp() — возвращает дистанцию между значением и ближайшим большим значением
- copySign() — возвращает аргумент с тем же знаком, что у второго аргумента
- getExponent() — возвращает экспоненту
- IEEEremainder() — возвращает остаток от деления
- hypot() — возвращает длину гипотенузы
- random() — возвращает случайное число между 0 и 1 (единица в диапазон не входит)
- signum() — возвращает знак значения
- toDegrees() — преобразует радианы в градусы
- toRadians() — преобразует градусы в радианы
Вычислим наибольшее и наименьшее числа из двух заданных значений.
Большие числа
Если вам не хватает точности основных типов для представления целых и вещественных чисел, то можно использовать классы BigInteger и BigDecimal из пакета java.math, которые предназначены для выполнения действий с числами, состоящими из произвольного количества цифр.
Для преобразования обычного числа в число с произвольной точностью (называемое большим числом) вызывается статический метод valueOf():
При работе с большими числами нельзя использовать привычные математические операции с помощью + или * и т.п. Вместо них следует использовать специальные методы add() (сложение), multiply() (умножение), divide() (деление) и т.д.
В обычной практике эти числа используются редко.
Источник
Android studio математические операции
В уроке 8 мы затронули логические операторы, они нам были необходимы для формирования логического выражения в условиях if. Этот урок будет посвящен математике в Java, и поэтому мы рассмотрим подробнее арифметические операторы и частично возможности класса Math.
Но для начала, выясним, что же такое операторы. Операторы это специальные символы, отвечающие за ту или иную операцию, например сложение, умножение, сравнение. Все операторы в Java можно разбить на 4 класса — арифметические, битовые, операторы сравнения и логические.
Арифметические операторы в Java
Для стандартных арифметических операций, таких как сложение, вычитание, умножение, деление в Java используются традиционные символы, к которым мы привыкли со школы:
Примечание: при операции деления, если оба аргумента являются целыми числами, то в результате получим целое число. Дробная часть, если такая имеется, отбросится. Если хотим получить число с дробной частью, то нужно, чтобы один из аргументов был типа double. Это можно указать в самом выражении при помощи добавления после числа .0 или .d. Пример:
В Java также имеется специальный оператор %, обозначающий остаток от делния.
Пример использования: дан массив целых чисел, вывести на консоль только те числа, которые делятся на 3.
Операции с присваиванием
Рассмотрим задачу вывода на экран 10 первых четных чисел чисел
мы можем записать сокращенно
+= это оператор сложения с присваиванием. Подобные операторы есть для всех основных 5 операций, рассмотренных выше
Пример использования: Найти факториал числа 7.
Инкрементирование и декрементирование
Инкремент, обозначается ++ и увеличивает значение переменной на единицу. Декремент обозначается — и уменьшает значение на единицу. С инкрементом и декрементом мы часто встречаемся в цикле for.
Инкремент и декремент бывают двух форм
Различие префиксной и постфиксной формы проявляется только тогда, когда эти операции присутствуют в выражениях. Если форма префиксная, то сначала произойдет увеличение (или уменьшение) переменной на единицу, а потом с новым значением будет произведены дальнейшие вычисления. Если форма постфиксная, то расчет выражения будет происходить со старым значением переменной, а переменная увеличится (или уменьшится) на единицу после вычисления выражения. Пример
В первом случае сначала переменная a увеличится на 1, потом произойдет вычисление всего выражения. Во втором случае произойдет вычисление выражения при старом значении b = 3, и после вычисления b увеличится на 1, на результат в postfix это уже не повлияет.
Если вы поняли принцип работы постфиксного и префиксного инкремента/декремента, то предлагаю решить в уме такую задачу:
Вопрос: чему в итоге равны x и y? После того, как вы сделали предположение, проверьте его в java.
Задача со зведочкой. Дан код:
Какие числа будут выведены на экран? Почему? Разобраться самостоятельно.
Примечание: инкремент и декремент применяются только к переменной. Выражение вида 7++ считается недопустимым.
Математические функции и константы (класс Math)
Для решения задач нередко требуется использование математических функций. В Java такие функции включены в класс Math. Для того, чтобы использовать методы класса Math, нужно подключить его в начале .java файла с вашим кодом.
Источник
BestProg
Операции. Арифметические операции
Поиск на других ресурсах:
1. Какие группы операций поддерживаются в Java ?
Язык программирования Java поддерживает большой набор операций. Операции используются в выражениях.
Все операции делятся на 5 групп:
- арифметические операции ( + , — , * , / и прочие);
- поразрядные логические операции (
, & , | и прочие);
⇑
2. Какие особенности использования арифметических операций?
Арифметические операции используются в математических выражениях. Арифметические операции являются близкими к операциям алгебры.
Арифметические операции должны иметь числовой тип . Подробное описание типов данных можно прочитать здесь .
Арифметические операции можно выполнять также над типом char .
Запрещается выполнять арифметические операции над логическими типами данных ( boolean ).
В языке Java поддерживаются следующие арифметические операции:
⇑
3. Пример использования арифметических операций + , – , * , /
⇑
4. Пример использования операции % остатка от деления
Операция % возвращает остаток от деления. Эту операцию можно применять:
- к целочисленным типам данных ( byte , short , int , long );
- к типам данных с плавающей запятой ( float , double ).
Так, например, если поделить 8 на 5, то остаток от деления будет равен 3.
⇑
5. Пример применения операций инкремента ++ и декремента — —
Операция инкремента ‘ ++ ‘ увеличивает значение операнда на 1.
Операция декремента ‘ — ‘ уменьшает значение операнда на 1.
Также операцию декремента
⇑
6. Какое отличие между префиксной и постфиксной формой применения операций инкремента ( ++ ) и декремента ( –– )
Отличие между префиксной и постфиксной формами применения проявляется в случаях, когда эти операции есть частью более сложного выражения.
В префиксной форме ( ++a или —a ) последовательность выполнения операций следующая:
- увеличивается (уменьшается) значение операнда a на 1;
- результирующее значение операнда a используется в выражении.
В постфиксной форме ( a++ или a— ) последовательность выполнения операций следующая:
- предшествующее значение операнда a используется в выражении;
- увеличивается (уменьшается) значение операнда a на 1.
Пример.
В данном примере строка
- сначала увеличивается значение операнда a ;
- потом результирующее значение присваивается переменной b .
- сначала значение a присваивается переменной b ;
- затем значение a увеличивается на 1.
⇑
7. Примеры применения составных арифметических операций с присваиванием += , -= , *= , /= , %=
Составные арифметические операции с присваиванием имеют 2 преимущества:
- уменьшают объем введенного кода, если встречаются длинные имена переменных;
- реализация составных арифметических операций в исполняющей среде Java есть более эффективной, чем реализация соответствующих длинных операций присваивания.
Общий вид составной операции с присваиванием:
Такая операция заменяет стандартную форму присваивания:
Пример. Использование составных операторов в программе.
Источник
Дополнительные классы
Математические вычисления и класс Math
Для выполнения различных математических операций в Java в пакете java.lang определен класс Math . Рассмотрим его основные методы:
abs(double value) : возвращает абсолютное значение для аргумента value
acos(double value) : возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1
asin(double value) : возвращает арксинус value. Параметр value должен иметь значение от -1 до 1
atan(double value) : возвращает арктангенс value
cbrt(double value) : возвращает кубический корень числа value
ceil(double value) : возвращает наименьшее целое число с плавающей точкой, которое не меньше value
cos(double d) : возвращает косинус угла d
cosh(double d) : возвращает гиперболический косинус угла d
exp(double d) : возвращает основание натурального логарифма, возведенное в степень d
floor(double d) : возвращает наибольшее целое число, которое не больше d
floorDiv(int a, int b) : возвращает целочисленный результат деления a на b
log(double a) : возвращает натуральный логарифм числа a
log1p(double d) : возвращает натуральный логарифм числа (d + 1)
log10(double d) : возвращает десятичный логарифм числа d
max(double a, double b) : возвращает максимальное число из a и b
min(double a, double b) : возвращает минимальное число из a и b
pow(double a, double b) : возвращает число a, возведенное в степень b
random() : возвращает случайное число от 0.0 до 1.0
rint(double value) : возвращает число double, которое представляет ближайшее к числу value целое число
round(double d) : возвращает число d, округленное до ближайшего целого числа
scalb(double value, int factor) : возвращает произведение числа value на 2 в степени factor
signum(double value) : возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0
sin(double value) : возвращает синус угла value
sinh(double value) : возвращает гиперболический синус угла value
sqrt(double value) : возвращает квадратный корень числа value
tan(double value) : возвращает тангенс угла value
tanh(double value) : возвращает гиперболический тангенс угла value
toDegrees(double value) переводит радианы в градусы и toRadians(double value) — градусы в радианы
Источник
Операции над числами в Java
Унарные операции
Унарный минус. Он меняет знак числа на противоположный.
Вывод в консоль:
Мы использовали унарный минус два раза. В результате наше число стало сначала отрицательным, а потом снова положительным!
Инкремент ( ++ ) и декремент ( — )
Операция ++ увеличивает число на единицу, а операция — уменьшает на эту же самую единицу.
Вывод в консоль:
Такая форма записи может быть тебе знакома, если ты слышал о языке С++. С помощью такого интересного названия его создатели передали свою идею: «C++ является расширением языка C». А популярная улучшенная версия «Блокнота» называется Notepad++ Важный момент . Операции инкремента и декремента бывают двух видов: постфиксными, и префиксными. x++ — постфиксная запись ++x — префиксная запись В чем же заключается принципиальная разница, если ставить плюсы-минусы перед числом или после? Увидим на примере: Вывод в консоль: Что-то не так! Мы хотели увеличить x на 1 и присвоить новое значение переменной y . То есть y должен быть равен 1000. Но у нас другой результат — 999. Получается, x не был увеличен, и операция инкремента не сработала? Еще как сработала. Чтобы в этом убедиться, попробуй вывести x на консоль в конце 🙂 Вывод в консоль: На самом деле, постфиксная операция потому так и называется: она выполняется после основного выражения. То есть в нашем случае: int y = x++; сначала выполняется y = x (и переменной y будет присвоено изначальное значение x ), а только потом x++ Как быть, если нас не устраивает такое поведение? Нужно использовать префиксный способ записи: В этом случае сначала отработает ++x и только после этого y = x; Эту разницу стоит запомнить сразу, чтобы не совершить ошибок в реальной программе, в которой все поведение может из-за этого встать с ног на голову 🙂
Комбинированные операции
Логические операции
! — оператор “НЕ”. Меняет значение булевой переменной на противоположное
Вывод в консоль:
&& — оператор “И”. Возвращает значение true только в том случае, если оба операнда являются true .
Вывод в консоль:
Результатом первой операции является false , поскольку одно из условий является ложным, а именно 100 > 200. Оператору && для того, чтобы вернуть true требуется, чтобы истинными были все условия (как во второй строке, например).
|| — оператор “ИЛИ”. Возвращает true , когда хотя бы один из операндов истинный.
Здесь наш предыдущий пример уже отработает по-другому:
Вывод в консоль:
Выражение 100 > 200 по-прежнему ложно, но оператору “или” вполне достаточно, что первая часть (100 > 10) является истинной.
Источник