Olá pessoal!
Estava fazendo um exercício do curso de Java. Era pedido para eu criar um novo objeto. Não tive dúvidas quanto ao exercício em si, mas resolvi testar se o que eu havia feito estava certo e acabei me deparando com uma questão intrigante.
class Funcionario {
String nome;
String departamento;
String dataDeEntrada;
double salario;
int rg;
void recebeAumento(double aumento) {
this.salario += aumento;
}
double calculaGanhoAnual() {
return this.salario * 12;
}
}
class Programa {
public static void main(String[] args) {
Funcionario heloisa = new Funcionario();
heloisa.salario = 1999.9;
System.out.println(heloisa.salario);
System.out.println(heloisa.calculaGanhoAnual());
heloisa.recebeAumento(150.0);
System.out.println(heloisa.calculaGanhoAnual());
}
}
Ao executar o Programa.class, é exibido o seguinte:
1999.9
23998.800000000003
25798.800000000003
De fato, os resultados estão aproximadamente corretos, mas não compreendo porque, ao invés de ser exibido 23999.8
e 25798.8
está sendo exibido 23998.800000000003
e 25798.800000000003
. De onde veio esse "3"?