Tipi 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
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; }
Questo 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 possono essere contenuti 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:
Tipo di dato | ||
---|---|---|
short | 2 byte | |
int | 4 byte | |
long | 8 byte |
È possibile utilizzare long
per memorizzare numeri di grandi dimensioni (ad esempio, la popolazione mondiale). Si può anche usare short
se si è certi che il numero non supererà l'intervallo da -32,768
a 32,767
(ad esempio, per memorizzare l'età di un utente). L'utilizzo di short
occuperà meno spazio di memoria.
main.cpp
123456789101112#include <iostream> int main() { short age = 22; int likes = 143200; long population = 8200000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Nota
Prestare attenzione al tipo di dato selezionato. Se l'intervallo di un tipo viene superato, il compilatore C++ non segnalerà alcun avviso, e si potrebbe ricevere un valore inatteso senza alcuna indicazione di errore.
Numeri in virgola mobile
I tipi di dato sopra sono progettati per memorizzare numeri interi. Se provassimo ad assegnare 1.6
a uno di questi, otterremmo il seguente risultato:
main.cpp
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
o double
.
Tipo di dato | ||
---|---|---|
float | ||
double |
Ecco un esempio di utilizzo di double
per memorizzare 1.6
.
main.cpp
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; }
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 utilizzaredouble
di default, a meno che non si sia certi che la precisione difloat
sia sufficiente.
Ovviamente, è possibile utilizzare float
o double
per memorizzare numeri interi, poiché questi sono numeri decimali con una parte decimale uguale a 0. Tuttavia, come buona pratica, se una variabile memorizza valori che possono essere solo numeri interi (ad esempio, popolazione o like), è preferibile utilizzare short
/int
/long
.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain the difference between float and double in more detail?
What happens if I try to store a number outside the range of a data type?
When should I use short, int, or long in my programs?
Awesome!
Completion rate improved to 3.85
Tipi 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
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; }
Questo 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 possono essere contenuti 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:
Tipo di dato | ||
---|---|---|
short | 2 byte | |
int | 4 byte | |
long | 8 byte |
È possibile utilizzare long
per memorizzare numeri di grandi dimensioni (ad esempio, la popolazione mondiale). Si può anche usare short
se si è certi che il numero non supererà l'intervallo da -32,768
a 32,767
(ad esempio, per memorizzare l'età di un utente). L'utilizzo di short
occuperà meno spazio di memoria.
main.cpp
123456789101112#include <iostream> int main() { short age = 22; int likes = 143200; long population = 8200000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Nota
Prestare attenzione al tipo di dato selezionato. Se l'intervallo di un tipo viene superato, il compilatore C++ non segnalerà alcun avviso, e si potrebbe ricevere un valore inatteso senza alcuna indicazione di errore.
Numeri in virgola mobile
I tipi di dato sopra sono progettati per memorizzare numeri interi. Se provassimo ad assegnare 1.6
a uno di questi, otterremmo il seguente risultato:
main.cpp
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
o double
.
Tipo di dato | ||
---|---|---|
float | ||
double |
Ecco un esempio di utilizzo di double
per memorizzare 1.6
.
main.cpp
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; }
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 utilizzaredouble
di default, a meno che non si sia certi che la precisione difloat
sia sufficiente.
Ovviamente, è possibile utilizzare float
o double
per memorizzare numeri interi, poiché questi sono numeri decimali con una parte decimale uguale a 0. Tuttavia, come buona pratica, se una variabile memorizza valori che possono essere solo numeri interi (ad esempio, popolazione o like), è preferibile utilizzare short
/int
/long
.
Grazie per i tuoi commenti!