Menu
Coddy logo textTech

Conversione di tipo Parte 1

Fa parte della sezione Fondamenti del percorso C++ di Coddy. Lezione 14 di 74.

Il casting dei tipi è il processo di conversione di un valore da un tipo di dato a un altro.

In C++, possiamo convertire gli interi in numeri double, i numeri double in interi e altro ancora. Esistono due tipi di conversione di tipo: implicita (automatica) ed esplicita (manuale).

Per esempio Integer to Double:

Conversione implicita (automatica):

int number = 5;
double decimal = number; // diventa automaticamente 5.0

// con un calcolo
int x = 7;
double result = x / 2.0; // result è 3.5

Nota: Quando dividi due valori int, C++ esegue la divisione intera: la parte decimale viene scartata. Ad esempio, 7 / 2 dà 3, non 3.5. Per ottenere un risultato decimale, almeno un operando deve essere un double (ad es., 7 / 2.0 dà 3.5).

Conversione esplicita (manuale) Double to Integer:

double decimal = 9.7;
int number = (int) decimal;  // diventa 9 (la parte decimale viene troncata)

// con un calcolo
double price = 19.99;
int roundedPrice = (int) price;  // diventa 19

Stile preferito in C++ moderno: Invece del cast in stile C (int) decimal, è buona pratica usare static_cast<>(), che è più sicuro ed esplicita meglio la tua intenzione:

double decimal = 9.7;
int number = static_cast<int>(decimal);  // diventa 9 (la parte decimale viene troncata)

double price = 19.99;
int roundedPrice = static_cast<int>(price);  // diventa 19

Nota: Sia (int) value sia static_cast<int>(value) producono lo stesso risultato in questo caso, ma static_cast<>() è l’approccio consigliato nel C++ moderno, perché rende la conversione chiaramente visibile ed è controllato dal compilatore.

challenge icon

Sfida

Principiante

Scrivi un programma C++ che dimostri il casting dei tipi. Esegui le seguenti operazioni:

Converti la variabile price in un int e memorizza il risultato in una nuova variabile chiamata intPrice.

Provalo tu

#include <iostream>

int main() {
    // Declara e inicializa las variables
    double price = 99.99;
    int intPrice = ?; // Conversión explícita de double a int
    
    
    // Muestra los valores
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore C++ online