2017-10-02 2 views
0

Nous devions effectuer une gestion de servlet lorsque nous devions calculer le salaire net d'un salarié avec les entrées fournies par l'utilisateur. J'ai réussi à obtenir les informations correctes mais quand il s'agit d'obtenir le taux, la sortie affiche 0 au lieu du taux horaire assigné qui dépend de la position de l'utilisateur. Voici le bloc de code que j'ai jusqu'à présent: {Impossible d'affecter une valeur spécifique à une variable

private int rate; 
private int grosspay; 
private int sss; 
private double philhealth; 
private double pagibig; 
private double tax; 
private double deductions; 

private int bonus; 
private double netpay; 


public ComputeBean() 
{} 

public void setEmployeeid(int employeeid) 
{ 
    this.employeeid = employeeid; 
} 

public int getEmployeeid() 
{ 
    return employeeid; 
} 

public void setEmployeename(String employeename) 
{ 
    this.employeename = employeename; 
} 

public String getEmployeename() 
{ 
    return employeename; 
} 

public void setDepartment(String department) 
{ 
    this.department = department; 
} 

public String getDepartment() 
{ 
    return department; 
} 

public void setHour(int hour) 
{ 
    this.hour = hour; 
} 

public int getHour() 
{ 
    return hour; 
} 

public void setCategory(String category) 
{ 
    this.category = category; 
} 

public String getCategory() 
{ 
    return category; 
} 

public void setPosition(String position) 
{ 
    this.position = position; 
} 

public String getPosition() 
{ 
    return position; 
} 

private void setRate(int rate) 
{} 

public void computeRate(int rate) 
{ 
    getPosition(); 

    if(position.equals("clerk")) 
    { 
     setRate(rate = 100); 
    } 

    else if(position.equals("sup")) 
    { 
     setRate(rate = 200); 
    } 

    else if(position.equals("mana")) 
    { 
     setRate(rate = 300); 
    } 

    else if(position.equals("exec")) 
    { 
     setRate(rate = 500); 
    } 
} 

public int getRate() 
{ 
    return rate; 
} 

} }

+1

Side note - [Ne jamais utiliser en double pour l'argent] (https://stackoverflow.com/q/3730019/330057) – corsiKa

Répondre

2

Lorsque vous utilisez un setter, il suffit de passer la valeur, comme si

else if(position.equals("exec")) 
{ 
    setRate(500); 
} 

faire alors que votre setter fait réellement quelque chose!

private void setRate(int rate) 
{ 
    this.rate = rate; 
} 
+0

obtenez toujours 0 pour le taux – salmonade

+0

Êtes-vous sûr que vous avez appelé le taux de calcul avant d'afficher le taux informations à l'écran? – corsiKa

+0

omg alors c'est ce qui me manquait hallelujah vous êtes un ami de sauveteur – salmonade