Duplicar posibles:
Varying behavior for possible loss of precision¿Por qué Java realiza conversión de tipo implícito de doble a entero cuando se utiliza el operador "más iguales"?
código de ejemplo Un
public class Test {
public static void main(String[] args) {
int i = 0;
i = i + 1.5;
}
}
Código Muestra B
public class Test {
public static void main(String[] args) {
int i = 0;
i += 1.5;
}
}
Unsurprisin gly, compilando A produce el siguiente error. Sorprendentemente, la compilación B no produce ningún error y parece comportarse como si insertara un molde explícito en entero antes del valor doble 1.5. ¿Por qué en el mundo sucede esto? ¡Esto va en contra de todo lo que pensé que sabía!
Test.java:6: possible
loss of precision
found : double
required: int
i = i + 1.5;
^
1 error
@Dave está justo en la parte desconcertante. Oh, bueno, ningún idioma es perfecto. :) –