Приведение типов. Часть 1
Часть раздела Основы путешествия по C++ на Coddy. Урок 14 из 74.
Приведение типов — это процесс преобразования значения из одного типа данных в другой.
В C++ мы можем преобразовывать целые числа в double, double — в целые числа и многое другое. Существует два типа casting: неявное (автоматическое) и явное (ручное) преобразование.
Например, Integer to Double:
Неявное (автоматическое) приведение типов:
int number = 5;
double decimal = number; // автоматически становится 5.0
// с вычислением
int x = 7;
double result = x / 2.0; // результат равен 3.5Примечание: При делении двух значений int C++ выполняет целочисленное деление: часть decimal отбрасывается. Например, 7 / 2 даёт 3, а не 3.5. Чтобы получить decimal результат, как минимум один операнд должен быть типа double (например, 7 / 2.0 даёт 3.5).
Явное (ручное) приведение типов Double to Integer:
double decimal = 9.7;
int number = (int) decimal; // становится 9 (дробная часть отбрасывается)
// с вычислением
double price = 19.99;
int roundedPrice = (int) price; // становится 19Предпочтительный современный стиль C++: Вместо приведения в стиле C (int) decimal лучше использовать static_cast<>(), поскольку это безопаснее и более явно показывает ваше намерение:
double decimal = 9.7;
int number = static_cast<int>(decimal); // становится 9 (дробная часть отбрасывается)
double price = 19.99;
int roundedPrice = static_cast<int>(price); // становится 19Примечание: И (int) value, и static_cast<int>(value) здесь дают одинаковый result, но static_cast<>() является рекомендуемым подходом в modern C++, поскольку он делает преобразование явно видимым и проверяется компилятором.
Задание
НовичокНапиши программу на C++, демонстрирующую приведение типов. Выполни следующие действия:
Приведи переменную price к типу int и сохрани result в новой переменной с именем intPrice.
Попробуйте сами
#include <iostream>
int main() {
// Объявить и инициализировать переменные
double price = 99.99;
int intPrice = ?; // Явное приведение типа из double в int
// Вывести значения
std::cout << "Price: " << price << std::endl;
std::cout << "Int Price: " << intPrice << std::endl;
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Оператор coutОператор cinВвод строкПовторение — До 120Повторение — Истина или ложь3Переменные. Часть 2
Объявление типовСоглашения об именованииПовторение: инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор ifКонструкция if - elseОператор switchУсловный операторПовторение: if - elseВложенный if - elseПотренируйтесь самостоятельно: Онлайн-компилятор C++