Prova questo tipo
double b = 317/219D;
L'impostazione predefinita di numeri codificati in Java è int
, quindi con il codice come lo avete java sta lavorando con due int
numeri e il risultato della divisione sarebbe quindi int
, che troncherà la parte decimale per dare un risultato finale di 1
. Il risultato int
viene quindi convertito da int 1
in un double 1
senza un avviso del compilatore perché è un allargamento cast (uno in cui il tipo di origine è garantito per "adattarsi" al tipo di destinazione).
codificando uno dei numeri come double
con la finale D
(si può anche usare d
, ma ho sempre utilizzare le lettere maiuscole perché L
in minuscolo l
sembra un 1
), il risultato della divisione sarà double
troppo .
l'output sarà 1.0 per essere più precisi –
Possibile duplicato di [divisione Java Integer: Ho w produci un doppio?] (http: // stackoverflow.com/domande/3144610/java-integer divisione-how-do-you-produce-a-doppia). Ho preso la mia scelta, ma questa domanda è stata posta troppe volte su SO. – demongolem