Lavorare con i Numeri in Virgola Mobile
Scorri per mostrare il menu
I numeri non si limitano agli interi. Esistono anche i numeri in virgola mobile. In C++, utilizziamo i tipi di dato float e double per memorizzarli. Questo capitolo tratterà il tipo di dato float, mentre il prossimo affronterà il tipo di dato double e le sue differenze. Di seguito è riportata la sintassi per l'utilizzo di float:
float.h
1float num = 0.45;
Esaminiamo brevemente come i numeri in virgola mobile vengono memorizzati in memoria.
Il tipo di dato float occupa 4 byte di memoria, proprio come un int. Tuttavia, la conversione di tali numeri in codice binario è molto più complessa:
Ecco un esempio di come float num = 13.45 verrebbe memorizzato:
Va bene se non si comprende completamente cosa sta succedendo qui. La cosa importante da notare è che la rappresentazione di un float è suddivisa in 3 parti:
-
la componente segno è rappresentata da un simbolo più (
+) o meno (-). Indica se un numero è positivo o negativo; -
la componente esponente determina l'intervallo che un numero può rappresentare. Più grande è l'esponente, più ampio è l'intervallo di valori rappresentabili. Per il tipo di dato
float, l'esponente occupa 1 byte (8 bit) di memoria; -
la componente mantissa determina la precisione di un
float. Non tutti i numeri possono essere rappresentati esattamente in memoria e la precisione di un numero è definita dalla lunghezza della mantissa. Per il tipo di datofloat, la lunghezza della mantissa è di 23 bit.
Di conseguenza, float ha una precisione di 7 cifre decimali e un intervallo da 1.2e-38 a 3.4e+38 (valido sia per numeri negativi che positivi). Quindi, nella maggior parte dei casi, l'intervallo non rappresenta un problema. Tuttavia, la precisione a volte lo è.
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