Menu
Coddy logo textTech

Приведение типов. Часть 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++, поскольку он делает преобразование явно видимым и проверяется компилятором.

challenge icon

Задание

Новичок

Напиши программу на 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;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор C++