Приведение типов. Часть 1
Часть раздела Основы путешествия по C++ на Coddy. Урок 14 из 74.
Преобразование типов — это процесс преобразования значения из одного типа данных в другой.
В C++ мы можем преобразовывать целые числа в числа с плавающей точкой, числа с плавающей точкой — в целые числа и так далее. Существует два типа приведения типов: неявное (автоматическое) и явное (ручное).
Например, Integer to Double:
Неявное (автоматическое) приведение типов:
int number = 5;
double decimal = number; // автоматически становится 5.0
// с вычислением
int x = 7;
double result = x / 2.0; // result равно 3.5Примечание: При делении двух значений int в C++ выполняется целочисленное деление: десятичная часть отбрасывается. Например, 7 / 2 дает 3, а не 3.5. Чтобы получить результат с десятичной частью, как минимум один операнд должен быть типа 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) здесь дают одинаковый результат, но в современном C++ рекомендуется использовать static_cast<>(), поскольку так преобразование становится наглядным и проверяется компилятором.
Задание
НовичокНапиши программу на C++, демонстрирующую преобразование типов. Выполни следующие действия:
Преобразуй переменную price в тип int и сохрани результат в новой переменной с именем intPrice.
Попробуйте сами
int intPrice = ?; // Явное приведение типа double к int
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Оператор coutОператор cinВвод строкПовторение — До 120Повторение — Истина или ложь3Переменные. Часть 2
Объявление типовСоглашения об именованииПовторение: инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор ifКонструкция if - elseОператор switchУсловный операторПовторение: if - elseВложенный if - elseПотренируйтесь самостоятельно: Онлайн-компилятор C++