1 è una costante intera, 2 è una costante intera. Ne deriva che la divisione è "intera", non floating-point.Originariamente inviato da Dreamer89
Perchè dal frammento di questo codice, il risultato che visualizzo sullo schermo è: 0.0?? o_Ocodice:double r = 1/2; System.out.println(r);
Se fosse stato ad esempio:
double r = 1.0/2;
o
double r = (double) 1/2;
Allora nel caso sopra 1.0 è una costante double mentre nel caso sotto il 1 intero viene convertito a double prima della divisione.
L'altro operando (il 2 intero) sarebbe stato convertito automaticamente a double e la divisione sarebbe stata fatta in floating-point, dando come risultato 0.5.
Rivedi le Conversions and Promotions in particolare la "Binary Numeric Promotion", perché sono fondamentali.

Rispondi quotando