/
Программирование
/
Курс Java
/

Явное преобразование типов

Java: Явное преобразование типов

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

Преобразование строки в число

Представим, что из формы пришла строка "345", а нам нужно прибавить к этому числу другое. Строку сначала превращают в целое число:

var number = Integer.parseInt("345");
System.out.println(number + 5); // => 350

Метод Integer.parseInt получает строку и возвращает целое число типа int. Похожим образом строку превращают в рациональное число с помощью Double.parseDouble.

Приведение между примитивными типами

Если преобразовать нужно из одного примитивного типа в другой, хватает указания типа в скобках перед значением. Значение преобразуется в тип, записанный в скобках:

var result = (int) 5.1;
System.out.println(result); // => 5

При приведении рационального числа к целому дробная часть отбрасывается без округления. Поэтому (int) 5.9 дает 5. В обратную сторону (double) 7 дает 7.0.

Приведение помогает и при делении. Деление целого на целое в Java дает целое число, а дробная часть теряется:

System.out.println(7 / 2);          // => 3
System.out.println((double) 7 / 2); // => 3.5

В первом случае оба значения целые, поэтому результат целый. Во втором случае делимое приведено к типу double, и деление стало рациональным.

Приведение внутри составных выражений

Преобразование типов работает и внутри больших выражений. Дополнительные скобки помогают визуально отделить части выражения друг от друга:

var result = 10 + ((int) 5.1);
System.out.println(result); // => 15

Здесь 5.1 приводится к 5, а затем складывается с 10.

Задание

Выведите на экран строку 2 times, полученную из числа 2.9 и строки times, используя преобразования типов и конкатенацию.

2 times

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются