Eu escrevi o código:
int x = 18;
x *= 0.90;
System.out.println(x);
Este código impresso16
Contudo, quando escrevi
int x = 18;
x = x * 0.90;
System.out.println(x);
me deu o seguinte erro:incompatible types: possible lossy conversion from double to int
Eu esperava que ambos os exemplos de código resultassem exatamente no mesmo erro que x *= y;
é igual a x = x * y;
, mas x *= 0.90;
de alguma forma funciona e x = x * 0.90;
não funciona. Por que isso acontece?