Переменные, типы данных, операторы

Содержание

Слайд 2

Введение в основы языка программирования Java

Класы BigInteger и BigDecimal в Java

Рассмотрим классы

Введение в основы языка программирования Java Класы BigInteger и BigDecimal в Java
BigDecimal и BigInteger. Опишем два типа данных, их характеристики и сценарии их использования. Кратко рассмотрим различные операции с использованием этих двух классов.

BigDecimal представляет собой неизменяемое десятичное число со знаком произвольной точности. Он состоит из двух частей:

1.Возможность задать размерность (масштаб, scale), которая представляет собой количество цифр после десятичной точки
2.Возможность задать метод округления

Например, BigDecimal 3.14 имеет не масштабированное значение 314 и размерность 2.

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

Встроенные примитивные числовые типы не всегда могут подходить для определенных программ. Например, необходимо хранить и использовать в программе очень большие числа, которые выходят за пределы допустимых значений для типов long и double.

Слайд 3

Введение в основы языка программирования Java

BigDecimal в Java

Создать BigDecimal из (скалярного) числа

Введение в основы языка программирования Java BigDecimal в Java Создать BigDecimal из (скалярного) числа типа double
типа double

Слайд 4

Введение в основы языка программирования Java

BigDecimal в Java

Лучше создание из строки:

Введение в основы языка программирования Java BigDecimal в Java Лучше создание из строки:

Слайд 5

Введение в основы языка программирования Java

BigDecimal в Java

Округление и масштабирование

Количество цифр после

Введение в основы языка программирования Java BigDecimal в Java Округление и масштабирование
запятой (масштаб) - метод .setScale(scale). Часто одновременное указание вместе с масштабом режима округления с помощью .setScale(scale, roundingMode). Режим округления задаёт правило округления числа.

не известно, как округлить

Слайд 6

Введение в основы языка программирования Java

BigDecimal в Java

Округление и масштабирование

Есть восемь вариантов

Введение в основы языка программирования Java BigDecimal в Java Округление и масштабирование
режима округления:

ROUND_CEILING: В большую сторону
0.333 -> 0.34
-0.333 -> -0.33
ROUND_DOWN: Отбрасывание разряда
0.333 -> 0.33
-0.333 -> -0.33
ROUND_FLOOR: В меньшую сторону
0.333 -> 0.33
-0.333 -> -0.34
ROUND_HALF_UP: Округление вверх, если число после запятой >= .5
0.5 -> 1.0
0.4 -> 0.0
ROUND_HALF_DOWN: Округление вверх, если число после запятой > .5
0.5 -> 0.0
0.6 -> 1.0

Слайд 7

Введение в основы языка программирования Java

BigDecimal в Java

Округление и масштабирование

Есть восемь вариантов

Введение в основы языка программирования Java BigDecimal в Java Округление и масштабирование
режима округления:

ROUND_HALF_EVEN:
Округление половины по чётности округляет как обычно. Однако, когда округляемая цифра 5, округление будет идти вниз, если цифра слева от 5 чётная и вверх, если нечётная.

@Deprecated(since = "9")

Согласно документам, setScale(int, int) не рекомендуется с Java 1.5.
Окончательно устарело в Java 9

Слайд 8

Введение в основы языка программирования Java

BigDecimal в Java

Округление и масштабирование. Enum RoundingMode

Задает

Введение в основы языка программирования Java BigDecimal в Java Округление и масштабирование.
поведение округления для числовых операций, допускающих потерю точности. Каждый режим округления указывает, как должна быть вычислена наименее значимая возвращаемая цифра округленного результата. Если возвращается меньше цифр, чем цифр, необходимых для представления точного числового результата, отброшенные цифры будут называться отброшенной дробью, независимо от вклада цифр в значение числа.

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

Слайд 9

Введение в основы языка программирования Java

BigDecimal в Java

Округление и масштабирование. Enum RoundingMode

Сводка

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

Слайд 10

Введение в основы языка программирования Java

BigDecimal в Java

Округление и масштабирование. Enum RoundingMode

Введение в основы языка программирования Java BigDecimal в Java Округление и масштабирование. Enum RoundingMode

Слайд 11

Введение в основы языка программирования Java

BigDecimal в Java

Неизменяемость и арифметика

Классы больших чисел

Введение в основы языка программирования Java BigDecimal в Java Неизменяемость и арифметика
не используют в своей работе операторы +-*/, а предоставляют вместо этого набор методов.
Числа BigDecimal являются неизменными. Это означает, что если создаётся новый объект BigDecimal со значением "2.00", такой объект останется "2.00" и никогда не может быть изменён.
Методы .add(), .multiply() и другие возвращают новый объект BigDecimal, содержащий результат.
Поэтому

Слайд 12

Введение в основы языка программирования Java

BigDecimal в Java

Неизменяемость и арифметика

А так неверно

Введение в основы языка программирования Java BigDecimal в Java Неизменяемость и арифметика А так неверно

Слайд 13

Введение в основы языка программирования Java

BigDecimal в Java

Сравнение

Важно! Никогда не использовать для

Введение в основы языка программирования Java BigDecimal в Java Сравнение Важно! Никогда
сравнения объектов BigDecimal метод .equals(). Этого нельзя делать потому, что функция equals будет сравнивать размерности и значения. Если размерности различаются, .equals() вернёт ложь, даже если они математически равны:

Следует использовать методы .compareTo() и .signum().

Слайд 14

Введение в основы языка программирования Java

BigDecimal в Java

Основные методы класса BigDecimal:
BigDecimal add(BigDecimal

Введение в основы языка программирования Java BigDecimal в Java Основные методы класса
other): возвращает сумму двух чисел
BigDecimal subtract(BigDecimal other): возвращает разность двух чисел
BigDecimal multiply(BigDecimal other): возвращает произведение двух чисел
BigDecimal divide(BigDecimal other): возвращает частное двух чисел
BigDecimal divide(BigDecimal other, RoundingMode mode): результат деления двух чисел, округленное в соответствии с режимом mode
int compareTo(BigDecimal other): сравнивает два числа. Возвращает -1, если текущий объект меньше числа other, 1 - если текущий объект больше и 0 - если числа равны
static BigDecimal valueOf(double x): возвращает объект BigDecimal, значение которого равно числу, переданному в качестве параметра
double doubleValue(): преобразует объект BigDecimal в double
float floatValue(): преобразует объект BigDecimal в float

Слайд 15

Введение в основы языка программирования Java

BigInteger в Java

Основные методы класса BigInteger:
BigInteger add(BigInteger

Введение в основы языка программирования Java BigInteger в Java Основные методы класса
other): возвращает сумму двух чисел
BigInteger subtract(BigInteger other): возвращает разность двух чисел
BigInteger multiply(BigInteger other): возвращает произведение двух чисел
BigInteger divide(BigInteger other): возвращает частное двух чисел
BigInteger mod(BigInteger other): возвращает остаток от целочисленного деления двух чисел
BigInteger sqrt(): возвращает квадратный корень числа
int compareTo(BigInteger other): сравнивает два числа. Возвращает -1, если текущий объект меньше числа other, 1 - если текущий объект больше и 0 - если числа равны
static BigInteger valueOf(long x): возвращает объект BigInteger, значение которого равно числу, переданному в качестве параметра
int intValue(): конвертирует объект BigInteger в объект int
byte byteValue(): преобразует объект BigInteger в byte
short shortValue(): преобразует объект BigInteger в short
long longValue(): преобразует объект BigInteger в long

Слайд 16

Введение в основы языка программирования Java

BigInteger в Java

Использование строки для передачи нужного

Введение в основы языка программирования Java BigInteger в Java Использование строки для
числа — хороший вариант. Оба класса умеют автоматически извлекать из переданных строк числовые значения.
Передача строки в качестве параметра — только один из возможных конструкторов.
Числа превышают максимальные значения long и double.
Просто передать в конструктор число
111111111111111111111111111111111111111
не получится: Java попытается «вместить» переданное число в один из примитивных типов данных, но оно не влезет.
Как и BigDecimal в классе BigInteger объекты являются неизменными (Immutable).
Имя файла: Переменные,-типы-данных,-операторы.pptx
Количество просмотров: 30
Количество скачиваний: 0