Menu
Coddy logo textTech

Type Casting Parte 1

Parte da seção Fundamentos do Journey de C++ da Coddy — lição 14 de 74.

Type casting é o processo de converter um valor de um tipo de dado para outro.

Em C++, podemos converter inteiros para doubles, doubles para inteiros e muito mais. Existem dois tipos de casting: implícito (automático) e explícito (manual).

Por exemplo Integer to Double:

Casting implícito (automático):

int number = 5;
double decimal = number; // torna-se automaticamente 5.0

// com cálculo
int x = 7;
double result = x / 2.0; // o resultado é 3.5

Nota: Ao dividir dois valores int, o C++ realiza a divisão inteira — a parte decimal é descartada. Por exemplo, 7 / 2 resulta em 3, não 3.5. Para obter um resultado decimal, pelo menos um operando deve ser um double (ex: 7 / 2.0 resulta em 3.5).

Casting explícito (manual) Double to Integer:

double decimal = 9.7;
int number = (int) decimal;  // torna-se 9 (a parte decimal é truncada)

// com cálculo
double price = 19.99;
int roundedPrice = (int) price;  // torna-se 19

Estilo preferido do C++ moderno: Em vez do cast no estilo C (int) decimal, é uma prática melhor usar static_cast<>(), que é mais seguro e mais explícito sobre sua intenção:

double decimal = 9.7;
int number = static_cast<int>(decimal);  // torna-se 9 (a parte decimal é truncada)

double price = 19.99;
int roundedPrice = static_cast<int>(price);  // torna-se 19

Nota: Tanto (int) value quanto static_cast<int>(value) produzem o mesmo resultado aqui, mas static_cast<>() é a abordagem recomendada no C++ moderno, pois torna a conversão claramente visível e é verificada pelo compilador.

challenge icon

Desafio

Iniciante

Escreva um programa C++ que demonstre a conversão de tipos (type casting). Realize o seguinte:

Converta a variável price para um int e armazene o resultado em uma nova variável chamada intPrice.

Folha de consulta

O type casting converte valores de um tipo de dado para outro.

Casting implícito (automático) — acontece automaticamente:

int number = 5;
double decimal = number; // torna-se automaticamente 5.0

int x = 7;
double result = x / 2.0; // o resultado é 3.5 (int/int descarta a parte decimal)

Casting explícito (manual) — estilo C e o moderno static_cast:

double price = 19.99;

int a = (int) price;                  // estilo C: torna-se 19
int b = static_cast<int>(price);     // preferido no C++ moderno: torna-se 19

Nota: Converter um double para int trunca (descarta) a parte decimal. O static_cast<>() é preferido no C++ moderno para clareza e segurança do compilador.

Experimente você mesmo

#include <iostream>

int main() {
    // Declarar e inicializar variáveis
    double price = 99.99;
    int intPrice = ?; // Conversão explícita (casting) de double para int
    
    
    // Exibir os valores
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos