You are here: Home » Учебник » Числовые литералы

Числовые литералы

Ключевой момент: литерал – это постоянное значение, которое появляется непосредственно в программе.

Например, 34 и 0.305 это литералы в следующих инструкциях:

int numberOfYears = 34;
double weight = 0.305;

1. Целочисленные литералы

Целочисленный литерал может быть присвоен числовой переменной при условии, что он соответствует типу переменной. Если литерал слишком велик для хранения в переменной, то произойдёт ошибка компиляции. Инструкция byte b = 128, например, приведёт к ошибке компиляции, поскольку 128 не может быть сохранено в переменной типа byte (помните, что диапазон для значения byte с -128 до 127.)

Предполагается, что целочисленный литерал имеет тип int, значение которого находится между-231 (-2147483648) и 231 – 1 (2147483647). Для указания целочисленному литералу быть типом long, добавьте к нему букву L или l. Например, для написания в программе Java числа 2147483648, вы должны написать 2147483648L или 2147483648l, поскольку 2147483648 выходит за рамки диапазона значений int. Предпочтительней L поскольку l (L в нижнем регистре) легко может быть спутана с 1 (цифрой один).

Справка: по умолчанию целочисленный литерал является десятичным целым числом. Для обозначения двоичного целочисленного литерала используйте перед ним 0b или 0B (ноль B), для обозначения восьмеричного целочисленного литерала, используйте перед ним 0 (ноль), а для обозначения шестнадцатеричного целочисленного литерала, используйте перед ним 0x or 0X (ноль X). К примеру:

System.out.println(0B1111); // Отобразит 15
System.out.println(07777); // Отобразит 4095
System.out.println(0XFFFF); // Отобразит 65535

Шестнадцатеричные цифры, двоичные цифры и восьмеричные цифры представлены в Приложении F.

2. Литералы с плавающей запятой

Литералы с плавающей запятой пишутся с десятичной точкой. По умолчанию литералы с плавающей запятой (точкой) обрабатываются как значения типа double. Например, 5.0 считается значением double, а не float. Вы можете сделать число float добавив букву f или F, и вы можете сделать число double добавив букву d или D. Например, вы можете использовать 100.2f или 100.2F для числа float, и 100.2d или 100.2D для числа double.

double или float

Примечание: значения типа double являются более точными, чем значения типа float. Например:

System.out.println("1.0 / 3.0 это " + 1.0 / 3.0);

Отобразит 1.0 / 3.0 это 0.3333333333333333 (16 цифр после запятой).

System.out.println("1.0F / 3.0F это " + 1.0F / 3.0F);

Отобразит 1.0F / 3.0F это 0.33333334 (8 цифр после запятой).

Значение float имеет от 7 до 8 значимых цифр, а значение double имеет от 15 до 17 значимых цифр.

3. Экспоненциальная запись

Литералы с плавающей запятой могут быть записаны в научной нотации (экспоненциальной записи) в форме a * 10b. Например, экспоненциальная запись для 123.456 это 1.23456 * 102, а для 0.0123456 это 1.23456 * 10-2. Для экспоненциальной записи цифр используется специальный синтаксис. Например, 1.23456 * 102 пишется как 1.23456E2 или 1.23456E+2, а 1.23456 * 10-2 как 1.23456E-2.

E (или e) представляет экспоненту и может быть как в нижнем, так и в верхнем регистре.

Справка: для представления чисел с плавающей точкой используются типы float и double. Почему они называются числами с плавающей точкой (или с плавающей запятой)? Когда 50.534 преобразовывается в экспоненциальную запись, такую как 5.0534E+1, его десятичная точка перемещает (т.е. переплывает) на новую позицию.

Помните: для улучшения читаемости, Java позволяет использовать знаки подчёркивания между двумя цифрами в числовых литералах. Например, следующие литералы корректны:

long ssn = 232_45_4519;
long creditCardNumber = 2324_4545_4519_3415L;

При этом, 45_ или _45 являются неверными. Знак подчёркивания должен находится между двумя цифрами.

Проверь себя:

  1. Сколько точных цифр хранится в переменной типа float или double?
  2. Какие из следующих литералов являются корректными для чисел с плавающей точкой?
  • 12.3
  • 12.3e+2
  • 23.4e-2
  • -334.4
  • 20.5
  • 39F
  • 40D
  1. Что из следующего является тем же самым что и 52.534?
  • 5.2534e+1
  • 0.52534e+2
  • 525.34e-1
  • 5.2534e+0
  1. Что из следующего является корректными литералами?
  • 5_2534e+1
  • _2534
  • 5_2
  • 5_

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo