Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Tipi di Dati Numerici | Variabili e Tipi di Dati
Introduzione a C++

bookTipi di Dati Numerici

Numeri interi

I tipi di dati interi sono i più comunemente utilizzati per i numeri interi. Il tipo di dato int può contenere valori nell'intervallo da -2,147,483,648 a 2,147,483,647.

main.cpp

main.cpp

copy
12345678910
#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing goodNumber: " << goodNumber << std::endl; std::cout << "Printing tooLarge: " << tooLarge << std::endl; }

Ciò accade perché quando si dichiara una variabile di tipo int, vengono allocati esattamente 4 byte della memoria del PC. E i numeri superiori a 2147483647 (o inferiori a -2147483648) non rientrano in questi 4 byte. Fortunatamente, sono disponibili altri tipi di dati che possono allocare più (o meno) spazio a seconda delle esigenze. Ecco la tabella:

Quindi puoi utilizzare long per memorizzare numeri grandi (ad esempio, la popolazione mondiale). Puoi anche utilizzare short se sei sicuro che il tuo numero non supererà l'intervallo da -32,768 a 32,767 (ad esempio, per memorizzare l'età di un utente). Utilizzare short occuperà meno spazio di memoria.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Note
Nota

Presta attenzione al tipo di dato che selezioni. Se viene superato l'intervallo di un tipo, il compilatore C++ non ti avviserà e potresti ricevere un valore inatteso senza alcuna indicazione di errore.

Numeri in virgola mobile

I tipi di dati sopra sono progettati per memorizzare numeri interi. Se provassimo ad assegnare 1.6 a uno di questi, ecco cosa otterremmo:

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }

Il tipo int tronca la parte decimale di un numero. Questo comportamento è lo stesso per i tipi short e long. Per memorizzare numeri in virgola mobile (decimali), è necessario utilizzare il tipo di dato float oppure double.

Ecco un esempio di utilizzo di double per memorizzare 1.6.

main.cpp

main.cpp

copy
12345678910
#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }
Note
Nota

Poiché il tipo float ha una precisione di soli sette cifre, il numero 123.456789 è già fuori dal suo intervallo. Questo può portare a risultati inaccurati (come mostrato nell'esempio sotto). Pertanto, è preferibile utilizzare double di default, a meno che non si sia certi che la precisione di float sia sufficiente.

Ovviamente, è possibile utilizzare float o double per memorizzare numeri interi poiché questi sono numeri decimali con una parte decimale pari a 0. Tuttavia, come buona pratica, se una variabile deve contenere solo valori interi (ad esempio, popolazione o numero di "mi piace"), è preferibile utilizzare short/int/long.

question mark

Cosa succede se si prova ad assegnare a una variabile int un numero maggiore di 2.147.483.647?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

What is the difference between float and double?

When should I use short, int, or long?

Can you explain why int truncates the decimal part?

Awesome!

Completion rate improved to 3.85

bookTipi di Dati Numerici

Scorri per mostrare il menu

Numeri interi

I tipi di dati interi sono i più comunemente utilizzati per i numeri interi. Il tipo di dato int può contenere valori nell'intervallo da -2,147,483,648 a 2,147,483,647.

main.cpp

main.cpp

copy
12345678910
#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing goodNumber: " << goodNumber << std::endl; std::cout << "Printing tooLarge: " << tooLarge << std::endl; }

Ciò accade perché quando si dichiara una variabile di tipo int, vengono allocati esattamente 4 byte della memoria del PC. E i numeri superiori a 2147483647 (o inferiori a -2147483648) non rientrano in questi 4 byte. Fortunatamente, sono disponibili altri tipi di dati che possono allocare più (o meno) spazio a seconda delle esigenze. Ecco la tabella:

Quindi puoi utilizzare long per memorizzare numeri grandi (ad esempio, la popolazione mondiale). Puoi anche utilizzare short se sei sicuro che il tuo numero non supererà l'intervallo da -32,768 a 32,767 (ad esempio, per memorizzare l'età di un utente). Utilizzare short occuperà meno spazio di memoria.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Note
Nota

Presta attenzione al tipo di dato che selezioni. Se viene superato l'intervallo di un tipo, il compilatore C++ non ti avviserà e potresti ricevere un valore inatteso senza alcuna indicazione di errore.

Numeri in virgola mobile

I tipi di dati sopra sono progettati per memorizzare numeri interi. Se provassimo ad assegnare 1.6 a uno di questi, ecco cosa otterremmo:

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }

Il tipo int tronca la parte decimale di un numero. Questo comportamento è lo stesso per i tipi short e long. Per memorizzare numeri in virgola mobile (decimali), è necessario utilizzare il tipo di dato float oppure double.

Ecco un esempio di utilizzo di double per memorizzare 1.6.

main.cpp

main.cpp

copy
12345678910
#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }
Note
Nota

Poiché il tipo float ha una precisione di soli sette cifre, il numero 123.456789 è già fuori dal suo intervallo. Questo può portare a risultati inaccurati (come mostrato nell'esempio sotto). Pertanto, è preferibile utilizzare double di default, a meno che non si sia certi che la precisione di float sia sufficiente.

Ovviamente, è possibile utilizzare float o double per memorizzare numeri interi poiché questi sono numeri decimali con una parte decimale pari a 0. Tuttavia, come buona pratica, se una variabile deve contenere solo valori interi (ad esempio, popolazione o numero di "mi piace"), è preferibile utilizzare short/int/long.

question mark

Cosa succede se si prova ad assegnare a una variabile int un numero maggiore di 2.147.483.647?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3
some-alt