Menu
Coddy logo textTech

Type Casting Parte 1

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

Conversão de tipo é o processo de converter um valor de um tipo de dado para outro.

Em C++, podemos converter inteiros em números de ponto flutuante, números de ponto flutuante em inteiros e muito mais. Existem dois tipos de conversão de tipo: implícita (automática) e explícita (manual).

Por exemplo, Integer to Double:

Conversão implícita (automática):

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

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

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

Conversão explícita (manual) de 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 deixa sua intenção mais explícita:

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

Observação: 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 em C++ que demonstre a conversão de tipos. Faça o seguinte:

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

Experimente você mesmo

#include <iostream>

int main() {
    // Declare e inicialize as variáveis
    double price = 99.99;
    int intPrice = ?; // Casting explícito de double para int
    
    
    // Exiba 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

Pratique por conta própria: Compilador de C++ online