Anteprima
Vedrai una selezione di 1 pagina su 3
Tipi di dati, errori e strutture di selezione - Linguaggio C Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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.

Dettagli
Publisher
A.A. 2020-2021
3 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher LucaTosetti_ di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Mirandola Raffaela.