Bom dia a todos prezados amigos e Boas Festas!!!
Tenho a classe Funcionário abaixo com dois métodos:
public double descontarDiasDoSalario(double dias) e
public double bonificarDiasDoSalario(double dias)
Não consigo acertar o seguinte… no main, crio um funcionário com salário de 1000, teoricamente aplicando o método de desconto - 5 dias ? ele faz o calculo certo, e o de bonifica também, porém quando aplico em seguida os dois métodos, o salário não volta para 1000, tem diferença de +/- 28 centavos, teoricamente era pra ser igual!!! essa é minha dúvida, não sei por que?
Segue abaixo a classe Programa também…
Muito obrigado!!!
Rodrigo
public class Funcionario
{
private String nome;
private String departamento;
private double salario;
private Data dataAdmissao;
private String rg;
private boolean estaNaEmpresa;
public Funcionario(String nome, String departamento, double salario, Data dataAdmissao, String rg, boolean estaNaEmpresa)
{
this.setNome(nome);
this.setDepartamento(departamento);
this.setSalario(salario);
this.setDataAdmissao(dataAdmissao);
this.setRg(rg);
this.estaNaEmpresa = estaNaEmpresa;
}
public String getNome()
{
return this.nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getDepartamento()
{
return this.departamento;
}
public void setDepartamento(String departamento)
{
this.departamento = departamento;
}
public double getSalario()
{
return this.salario;
}
public void setSalario(double salario)
{
this.salario = salario;
}
public Data getDataAdmissao()
{
return this.dataAdmissao;
}
public void setDataAdmissao(Data dataAdmissao)
{
this.dataAdmissao = dataAdmissao;
}
public String getRG()
{
return this.rg;
}
public void setRg(String rg)
{
this.rg = rg;
}
public boolean getEstaNaEmpresa()
{
if(this.estaNaEmpresa == true)
{
return true;
}
else
{
return false;
}
}
public double aumentarSalario(double percentual)
{
return this.salario *= 1 + percentual / 100;
}
public double descontarDiasDoSalario(double dias)
{
double salarioDia = this.salario / 30;
salarioDia *= (30 - dias);
this.salario = salarioDia;
return this.salario;
}
public double bonificarDiasDoSalario(double dias)
{
double salarioDia = this.salario / 30;
salarioDia *= (30 + dias);
this.salario = salarioDia;
return this.salario;
}
public void demite()
{
if(this.estaNaEmpresa == true || this.estaNaEmpresa == false)
{
this.estaNaEmpresa = false;
System.err.println("Funcionario demitido!!!");
}
}
public void imprimeFuncionarioNaTela()
{
StringBuffer sb = new StringBuffer();
sb.append("Nome do funcionario: " + this.getNome() + "\n");
sb.append("Departamento : " + this.getDepartamento() + "\n");
sb.append("Salario : " + this.getSalario() + "\n");
sb.append("Data de admissao : " + this.getDataAdmissao().getDia()+ "/" + this.getDataAdmissao().getMes() + "/" + this.getDataAdmissao().getAno() + "\n");
sb.append("Rg : " + this.getRG() + "\n");
sb.append("Esta na empresa : " + this.getEstaNaEmpresa() + "\n");
System.out.println(sb.toString());
}
}
public class Programa
{
public static void main(String[] args)
{
//Conta rodrigo = new Conta(1, new Cliente("Rodrigo", "Rua trinta, 710", "cpf30"), 1000.0, 2000.0);
//Conta neiva = new Conta(1, new Cliente("Neiva", "Rua vinte e tres, 1965", "cpf41"), 1000.0, 2000.0);
//rodrigo.cliente.getCpf();
//rodrigo.transferirDinheiroParaConta(1001, neiva);
//System.out.println("Saldo Rodrigo: " + rodrigo.cliente.getCpf());
//System.out.println("Saldo Neiva : " + neiva.getSaldoDaConta());
Funcionario func = new Funcionario("Rodrigo", "Cadastro", 1000.0, new Data(07,04,1976), "RG 710", true);
func.descontarDiasDoSalario(5);
func.bonificarDiasDoSalario(5);
func.imprimeFuncionarioNaTela();
//Funcionario func1 = new Funcionario("Rodrigo", "Cadastro", 1000.0, new Data(02,02,1997), "RG 710", true);
//Funcionario func2 = new Funcionario("Rodrigo", "Cadastro", 1000.0, new Data(02,02,1997), "RG 710", true);
//func.demite();
/*System.out.println(func.getNome());
System.out.println(func.getDepartamento());
System.out.println(func.getSalario());
System.out.println(func.getDataAdmissao());
System.out.println(func.getRG());
System.out.println(func.getEstaNaEmpresa());
*/
/* System.out.println(func.getSalario());
func.descontarDiasDoSalario(0.5);
func.bonificarDiasDoSalario(0.5);
System.out.println(func.getSalario());
*/
//func.demite();
//func.imprimeFuncionarioNaTela();
/*if(func == func1)
{
System.out.println("SAO IGUAIS!!!");
}
else
{
System.err.println("SAO DIFERENTES!!!");
}*/
//nao entendi nada.
/*Funcionario[] todos = new Funcionario[10];
todos[0] = func;
todos[1] = func1;
Empresa e = new Empresa("Empresarodrigo", "cnpj10", todos);
//e.adicionaFuncionariosNaEmpresa(func2);
e.imprimiEmpresaComFuncionarios();*/
}
}