Числа с плавающей точкой java

Числа с плавающей точкой java

Вы здесь: Главная >> Java-учебник >> Числа с плавающей точкой

Обучающие курсы:

Числа с плавающей точкой в языке Java

Типы чисел с плавающей точкой

Эти типы предназначены для представления чисел, имеющих дробную часть. В языке Java есть два типа для чисел с плавающей точкой, показанные в табл. 3.2.

Таблица 3.2. Типы для чисел с плавающей точкой

Требуемый объем памяти

Приблизительно ±3.40282347E+38F
(6-7 значимых десятичных цифр)

Приблизительно ±3.40282347E+38F
(15 значимых десятичных цифр)

Имя double означает, что точность этих чисел вдвое превышает точность чисел типа float (Некоторые называют их числами с двойной точностью.) В большинстве приложений наиболее удобным является тип double. Ограниченной точности чисел типа float во многих случаях просто недостаточно.

Семи значимых (десятичных) цифр, возможно, хватит для того, чтобы точно выразить вашу годовую зарплату в долларах и центах, однако для зарплаты президента вашей компании этого будет явно недостаточно. Единственная причина, по которой тип еще используется, — редкие ситуации, в которых важна скорость обработки чисел (у чисел типа она выше). Кроме того, тип используется при хранении больших массивов действительных чисел.

Числа типа float имеют суффикс F, например 3 . 402F. Числа с плавающей точкой, не имеющие суффикса F (например 3.4 02), всегда рассматриваются как числа типа double.

Для их представления можно (но не обязательно) использовать суффикс D, например 3 .
вычисления, производящиеся над числами с плавающей точкой, следуют стандарту IEEE 7 54. В частности, в языке Java есть три специальных числа плавающей точкой:
положительная бесконечность;
отрицательная бесконечность;
NaN (не число).

Они используются для обозначения переполнения и ошибок. Например, результат деления положительного числа на 0 равен положительной бесконечности. Вычисление 0/0 или извлечение квадратного корня из отрицательного числа равно NaN.

В языке Java существуют константы Double. POSITIVE_INFINITY, Double. NEGATIVE_INFINITY и Double .NaN (а также соответствующие константы типа float).

Однако на практике они редко используются. В частности, для того, чтобы убедиться, что некий результат равен константе Double. NaN, нельзя полнить проверку
if (х == Double.NAN) // Тождественно ложное; условие.

Все величины, "не являющиеся числами", считаются разными. Однако можно вызывать метод Double. isNaN:
if (Double.IsNaN(xj) // Проверка, является ли х "не числом".

Во-первых, для обозначения констант типа char используются одиночные кавычки. Например, — это символ. Он отличается от "Н", строки, состоящей из единственного символа.
Во-вторых, тип char обозначает символы, представленные в формате Unicode. Вы можете не знать этот формат и не беспокоиться о нем, если не разрабатываете приложения, в которых нужна поддержка языков, помимо английского.

Поскольку формат Unicode был разработан для обработки практически всех символов всех письменных языков, существующих в мире, он является 2-байтсвым кодом. В нем допускается 65536 символов, из которых обычно используется около 35000. Формат Unicode намного богаче набора ASCII, представляющего собой 1-байтовый код, состоящий из 128 символов, или широко используемого расширения ISO 8859-1, с помощью которого можно закодировать 256 символов.

Читайте также:  Как обновить друг вокруг на компьютере

Этот набор символов (который программисты часто называют множеством символов представляет собой подмножество формата Unicode.
Точнее, эти символы являются первыми 256 кодировки Unicode.

Таким образом, код символов ‘а’, ‘ 1’, ‘ [‘ и ‘а’ в формате Unicode не превышает 256. Коды символов в формате Unicode лежат в диапазоне от 0 до 65535, однако обычно они выражаются как шестнадцатеричные величины от ‘u0000’ до ‘uFFFF’ (в то время
как в формате ISO 8859-1 их диапазон ограничивается числами ‘ u0000 ‘ и ‘ uOOFF’).

Префикс и означает, что символ записан в формате Unicode, а следующие за ним четыре шестнадцатеричные цифры задают сам символ. Например, u2122 — это символ торговой марки. Более подробную информацию о формате Unicode вы можете найти на vveb-странице http : //www.unicode.org.

Кроме префикса u, означающего символ в формате Unicode, в языке Java есть еще несколько специальных символов (escape sequence), показанных в табл. 3.3.

Таблица 3.3 Специальные символы.

Числа с плавающей точкой (или действительные числа) представлены типами float и double. Используются для хранения значений с точностью до определенного знака после десятичной точки.

double — это числа с двойной точностью, максимально приближённые к заданным или полученным в результате вычислений значениям. Используется в Java для любых математических вычислений (квадратный корень, синус, косинус. ).

float — менее точный тип с плавающей точкой. Используется очень редко с целью экономии памяти.

Пример объявления типов с плавающей точкой:

Тип Размер в байтах Размер в битах Возможные значения (от..до) Значение по умолчанию
float 4 32 -3.4E+38..3.4E+38 (стандарт IEEE 754) 0.0
double 8 64 -1.7E+308..1.7E+308 (стандарт IEEE 754) 0.0

В языке Java есть три специальных числа плавающей точкой, которые используются для обозначения переполнения и ошибок:

  • положительная бесконечность — результат деления положительного числа на 0. Представлены константами Double.POSITIVE_INFINITY и Float.POSITIVE_INFINITY .
  • отрицательная бесконечность — результат деления отрицательного числа на 0. Представлены константами Double.NEGATIVE_INFINITY и Float.NEGATIVE_INFINITY.
  • NaN (не число) — вычисление 0/0 или извлечение квадратного корня из отрицательного числа. Представлены константами Double.NaN и Float.NAN .

Пример использования специальных чисел с плавающей точкой в арифметических выражениях:

Ключевой момент: Java имеет шесть типов для целых числе и числе с плавающей запятой с операторами +, -, *, / и %.

1. Числовые типы

Каждый тип данных имеет диапазон значений. Компилятор выделяет пространство памяти для каждой переменной или константы в соответствии с её типом данных. Java предоставляет восемь примитивных типов данных для числовых значений, символов и логических значений. В этом разделе представлены числовые типы данных и операторы.

Читайте также:  Гарантия на диодные лампы

В таблице перечислены шесть числовых типов данных, их диапазоны и размеры их хранения.

Имя (тип) Диапазон Размер хранения
byte от -2 7 до 2 7 — 1 (от -128 до 127) 8-бит со знаком
short от -2 15 до 2 15 — 1 (от -32768 до 32767) 16-бит со знаком
int от -2 31 до 2 31 — 1 (от -2147483648 до 2147483647) 32-бита со знаком
long от -2 63 до 2 63 — 1 (т.е., от -9223372036854775808 до 9223372036854775807) 64-бита со знаком
float

Отрицательный диапазон: от -3.4028235E + 38 до -1.4E — 45

Положительный диапазон: от 1.4E — 45 до 3.4028235E + 38

32-бита IEEE 754 double

Отрицательный диапазон: от -1.7976931348623157E + 308 до -4.9E — 324

Положительный диапазон: от 4.9E — 324 до 1.7976931348623157E + 308

64-бита IEEE 754

Примечание: IEEE 754 является стандартом, утвержденным Институтом инженеров по электротехнике и электронике для представления на компьютерах чисел с плавающей запятой. Стандарт широко принят. Java использует 32-разрядный IEEE 754 для типа float и 64-разрядный IEEE 754 для типа double. Стандарт IEEE 754 также определяет специальные значения с плавающей запятой, которые перечислены в Приложении E.

Целочисленные типы

Java использует четыре типа целых чисел: byte, short, int и long. Выбирайте тип, который больше всего подходит для вашей переменной. Например, если вы знаете, что целое число, хранимое в переменной, находится в диапазоне байта, объявите переменную как byte. Для простоты и последовательности, большую часть времени на этом сайте мы будем использовать для целых чисел тип int.

Типы с плавающей запятой

Java использует два типа чисел с плавающей запятой: float и double. Тип double в два раза больше чем float. Поэтому double известен как число с двойной точностью, а float – как число с одинарной точностью. Обычно вам следует использовать тип double, поскольку он более точен чем тип float.

2. Считывание чисел с клавиатуры

Вы знаете как использовать метод nextDouble() из класса Scanner для считывания значения double с клавиатуры. Вы также можете использовать методы, представленные в следующей таблице, для чтения чисел типов byte, short, int, long и float:

Метод Описание
nextByte() прочитать число типа byte
nextShort() прочитать число типа short
nextInt() прочитать число типа int
nextLong() прочитать число типа long
nextFloat() прочитать число типа float
nextDouble() прочитать число типа double

Далее примеры для чтения данных различного типа с клавиатуры:

Если вы введёте значение из некорректного диапазона или формата, случиться ошибка выполнения. Например, в строке 3 вы введёте 128, произойдёт ошибка, поскольку 128 находится вне диапазона чисел типа byte.

3. Числовые операторы

Операторы +, -, *, /, % и операнды

Операторы для числовых типов данных включают стандартные арифметические операторы: сложение (+), вычитание (), умножение (*), деление (/) и остаток от деления (%).

Читайте также:  Газпромбанк мобильный банк стоимость услуги
Имя Значение Пример Результат
+ Сложение 34 + 1 35
Вычитание 34.0 — 0.1 33.9
* Умножение 300 * 30 9000
/ Деление 1.0 / 2.0 0.5
% Остаток от деления 20 % 3 2

Целочисленное деление

Когда оба операнда деления (делимое и делитель) являются целыми числами, результатом деление будет частное без дробной части. Например, 5 / 2 даёт 2, а не 2.5, а -5 / 2 даёт -2, а не -2.5. Для выполнения деления с плавающей точкой один из операндов должен быть числом с плавающей запятой. Например, 5.0 / 2 даёт 2.5.

Оператор %, известный как остаток от деления, или оператор модуля, даёт остаток после деления. Операндом слева – это делимое, а операнд справа – делитель. Поэтому 7 % 3 даёт 1, 3 % 7 даёт 3, 12 % 4 даёт , 26 % 8 даёт 2 и 20 % 13 даёт 7.

Оператор % часто используется для положительных целых чисел, но также может использоваться для отрицательных и значений с плавающей запятой. Остаток от деления является отрицательным только если отрицательным является делимое. Например, -7 % 3 даёт -1, -12 % 4 даёт , -26 % -8 даёт -2 и 20 % -13 даёт 7.

Остаток от деления очень полезен в программировании. Например, чётные числа % 2 всегда , а нечётные числа % 2 всегда 1. Так вы можете использовать это свойство для определения, является ли число чётным или нечётным. Если сегодня суббота, то суббота снова будет через 7 дней. Предположим, вы и ваши друзья собираетесь встретиться через 10 дней. Какой день будет через 10 дней? Вы можете узнать, что будет вторник используя следующее выражение:

Следующая программа считает сколько минут и секунд содержится в количестве введённых секунд. Например, 500 секунд содержат 8 минут и 20 секунд.

Метод nextInt() (строка 8) считывает число для seconds. Строка 10 получает минуты используя seconds / 60. Строка 11 (seconds % 60) получает оставшиеся секунды без минут.

Унарные и бинарные операторы

Операторы + и могут быть как унарными, так и бинарными. Унарный оператор имеет только один операнд; а бинарные – два. Например, оператор в -5 – это унарный оператор, показывающей, что число 5 является отрицательным, в то время как оператор в 4 — 5 является бинарным оператор для вычитания 5 из 4.

4. Операции возведения в степень

Метод Math.pow(a, b) может использоваться для вычисления a b . Метод pow определён в классе Math в Java API. Этот метод вызывается с использованием синтаксиса Math.pow(a, b) (например, Math.pow(2, 3)), который возвращает результата a b (2 3 ). Здесь a и b являются параметрами для метода pow, а числа 2 и 3 настоящими значениями, используемыми для вызова метода. Например:

В одной из последующих главах будут даны дополнительные подробности о методах. На данный момент всё, что вам нужно знать, это как вызывать метод pow для выполнения операций возведения в степень.

Ссылка на основную публикацию
Чем мобильное приложение лучше сайта
Согласно последним данным, ежегодный прирост мобильной экономики составляет 10%, и уже около 20% всех продаж через ПК осуществляются после клика...
Футбольный менеджер без интернета
Да, уже четыре года назад Испания выиграла Евро 2012. С того времени много воды утекло и теперь у других команд...
Футбольный менеджер с реальными командами
Бесплатная онлайн игра. Только в нашем футбольном менеджере игры проходят в реальном времени и можно менять тактику непосредственно во время...
Чем можно заменить майл агент
Альтернативы Mail.Ru Агент Обзоры и новости о Mail.Ru Агент 2015. Mail.Ru Агент уступит место ICQ Оба популярных российских мессенджера Mail.ru...
Adblock detector