[Java] Tipi primitivi
Salve, potreste aiutarmi con questa domanda:
- Se a è una variabile di tipo double, l’assegnazione a = 1.0 + 1/2 assegna il valore 1.5 alla variabile a.
le opzioni sono vero o falso. La risposta è falso, ma non capisco perchè.
Qualcuno potrebbe gentilmente aiutarmi? Grazie mille in anticipo!
- Se a è una variabile di tipo double, l’assegnazione a = 1.0 + 1/2 assegna il valore 1.5 alla variabile a.
le opzioni sono vero o falso. La risposta è falso, ma non capisco perchè.
Qualcuno potrebbe gentilmente aiutarmi? Grazie mille in anticipo!
Risposte
E' corretto.
Se provi col codepad di blueJ, per esempio, noti che ad a viene assegnato il valore 1.0 e non 1.5.
Questo perchè 1/2 viene letto come intero e viene effettuato il troncamento della sua parte decimale.
...
non sono un informatico (anzi, frequento Matematica) e pertanto la mia sono sicuro che sia una spiegazione non corretta del tutto formalmente
Se provi col codepad di blueJ, per esempio, noti che ad a viene assegnato il valore 1.0 e non 1.5.
Questo perchè 1/2 viene letto come intero e viene effettuato il troncamento della sua parte decimale.
...
non sono un informatico (anzi, frequento Matematica) e pertanto la mia sono sicuro che sia una spiegazione non corretta del tutto formalmente

grazie mille!
La ragione è che la divisione ha precedenza rispetto alla somma per cui l'espressione viene vista come 1.0 + (1 / 2). Ma 1 e 2 sono costanti intere per cui la divisione avrà risultato intero e uguale a 0. A questo punto sommerai questo valore 0 (che verrà automaticamente convertito nel double 0.0) a 1.0 ottenendo 1.0.
La lezione da trarre da questo esercizio è di non usare mai costanti intere nelle divisioni se vuoi ottenere un double.
La lezione da trarre da questo esercizio è di non usare mai costanti intere nelle divisioni se vuoi ottenere un double.
Innanzitutto grazie mille per la tua risposta e scusa se disturbo ancora,
quale sarebbe invece il risultato per questa:
Con le seguenti dichiarazioni-assegnazioni double a=1.2; int b=2; int c=7; quale è il valore dell’espressione c/b+c*a
Grazie ancora
quale sarebbe invece il risultato per questa:
Con le seguenti dichiarazioni-assegnazioni double a=1.2; int b=2; int c=7; quale è il valore dell’espressione c/b+c*a
Grazie ancora
c/b è intero per cui è uguale a 2, mentre c*a è double e vale 8.4. La loro somma sarà quindi uguale a 10.4.
grazie mille per la risposta!!!