vuoi
o PayPal
tutte le volte che vuoi
Particolari caratteristiche dei tipi di dati
All'interno del linguaggio C, ma così come all'interno di molti altri linguaggi di programmazione, occorre prestare attenzione alle operazioni tra variabili dichiarate con tipi di dato differenti.
Infatti la "trasformazione" del valore di una variabile con un certo tipo nel valore di un'altra variabile con un altro tipo, potrebbe in alcune occasioni portare a perdite di dati. In particolare questo dipende dalla dimensione dei tipi delle variabili (char < int < float < double).
Float f1, f2;
int num1, num2, ris;
num1 = 7;
num2 = 5;
ris = num1 + num2;
f1 = num1; Non porta a perdita di informazioni 7 diventa 7.0 → f2 = 21.5;
num2 = f2 Da errore, in quanto ci sarebbe una perdita di informazioni con il passaggio di 21.5 a 21 (da float a intero), in quando si perderebbe la parte decimale.
Float ris2;
ris2 = num1 / num2 In questo non viene dato un errore dal compilatore,
Quanto più si verifica un errore nel risultato, infatti sebbene la divisione 7/5 porti ad ottenere un numero razionale (float), il valore assegnato a ris sarà 1.0, questo è dovuto al fatto che si tratta di un'operazione tra numeri interi.
Per evitare l'ultima problematica mostrata occorre andare ad utilizzare l'operatore di "cast". Tale operatore consente di trasformare il valore di una variabile di un tipo in un altro tipo.
Float ris2;
ris2 = (float) num1/num2
Oppure num1/(float)num2
In questo caso grazie al cast abbiamo ottenuto in ris2 il valore 1.4, questo perché nell'operazione abbiamo tradotto uno dei due interi in un numero float, e quindi 1.4.