Ragazzi ho un problema ....come posso fare per stabile se una divisione fra 2 numeri (input da tastiera) , dà un risultato di tipo int, di tipo float o di tipo double ?
Ragazzi ho un problema ....come posso fare per stabile se una divisione fra 2 numeri (input da tastiera) , dà un risultato di tipo int, di tipo float o di tipo double ?
Non devi fare assolutamente nulla, semplicemente perché se permetti di inserire due numeri di tipo int anche il risultato della divisione sarà un int. Analogamente per float e per double.
direi in modo migliore, esistono regole di "casting" automatico, in generale nelle operazioni matematiche, il tipo "più piccolo" (passatemi l'imprecisione) viene promosso alla dimensione del tipo "più grande". In dettaglio se ho
automaticamente intero è promosso a float e il risultato è di tipo float.codice:int intero = 1; float intero2 = 2f; intero + intero2;
I cast che possono invece avvenire con perdita di dati (es da float a int) DEVONO essere espliciti.
Detto questo, un paio di prove (non c'è bisogno che leggi da tastiera, puoi metterli pure da codice fissi per capire) penso ti chiariranno le idee
RTFM Read That F*** Manual!!!
Non so se mi sono spiegato bene...se un utente mette 2 numeri (1 , 3 ) da tastiera...poi il mio programma prende questi due numeri e li divide in questo caso esce un numero con la virgola (double o float) e essendo un risultato float lo stampo a video ,,, se invece fosse uscito un numero intero non l'avrei stampato..ora la mia domanda è il programma come fa a capire da solo se il risultato è un int o un double ? e poi a seconda del tipo di variabile esegue una operazione diversa?
beh fai conto che se hai
10 / 5
questo è 2, quindi un valore intero...ma
10 % 5
vale 0 quindi il resto è un valore intero
Ma se hai
10 / 4
questo è 2.5 , un double
e 10 % 4 è 2 (non zero), a riprova.
Dovrebbe funzionarti col modulo
RTFM Read That F*** Manual!!!