Явное преобразование типа в C++
Явное преобразование пишет новый тип прямо у числа.
Для этого служит слово static_cast.
В угловых скобках стоит новый тип, в круглых -
что преобразуем. Правила те же, что при обычной
записи в переменную.
Возьмем int и явно преобразуем его в double.
Результат запишем в дробную переменную.
Величина остается той же:
int num1 = 12;
double num2 = static_cast<double>(num1);
std::cout << num2 << "\n"; // выведет 12
Переменная num1 остается int.
Дробным стало число в num2. Точка на экране
не видна: дробная часть нулевая.
Та же запись нужна внутри действия, когда новую
переменную заводить незачем. Разделим два int.
Обычное деление отбрасывает дробь:
int num1 = 5;
int num2 = 2;
std::cout << num1 / num2 << "\n"; // выведет 2
Преобразуем первое число в double до деления.
Хвост сохраняется, а num1 по-прежнему int:
int num1 = 5;
int num2 = 2;
std::cout << static_cast<double>(num1) / num2 << "\n"; // выведет 2.5
Обратное преобразование отбрасывает хвост к нулю.
Возьмем дробь 9.7 и явно запишем ее как int:
double num = 9.7;
int whole = static_cast<int>(num);
std::cout << whole << "\n"; // выведет 9
Дана переменная:
int num = 8;
Преобразуйте ее в double через static_cast,
запишите результат в новую переменную и выведите ее.
Даны две переменные:
int num1 = 8;
int num2 = 5;
Найдите частное, записав первое число как double
через static_cast прямо в выражении, и выведите его.
Дана переменная:
double num = 6.4;
Запишите ее целую часть в переменную int
через static_cast и выведите ее.