我遇到了一个非常简单的问题,这使我发疯。我试图计算销售佣金并将其添加到薪水中,但是当我运行代码时,它总是给我$ 0的佣金和$ 0的补偿。这是我到目前为止的代码:
package compensationcalculator;
import java.text.NumberFormat;
public class CompensationCalculator {
private double salary = 75000;
private double sales;
private double commission;
private double compensation;
public CompensationCalculator() {
this.salary = 75000.00;
}
public void setSales(double sales) {
this.sales = sales;
}
public double getCommission() {
this.commission = (sales * 0.2);
return commission;
}
public double getCompensation() {
this.compensation = (salary + commission);
return compensation;
}
public String toString() {
NumberFormat fmt = NumberFormat.getCurrencyInstance();
return ("Annual Salary: " + fmt.format(salary) + "\n"
+ "Total Sales: " + fmt.format(sales) + "\n"
+ "Total Commission: " + fmt.format(commission) + "\n"
+ "Total Annual Compensation: " + fmt.format(compensation));
}
}
现在,当我在提示销售时输入5000时,我会在运行后得到以下答案:
Annual Salary: $75,000.00
Total Sales: $5,000.00
Total Commission: $0.00
Total Annual Compensation: $0.00
我确信这是一个简单的错误,但是我已经有一段时间没有使用Java了。我已经将它与几年前的一些我真正的旧代码进行了比较,看不到我所缺少的东西。任何指导将非常欢迎!
补偿值基于commission
,它是一个计算值。
设置值时,您需要预先计算所有值,或者需要使用这些方法中的值,例如...
public void setSales(double sales) {
this.sales = sales;
commission = sales * 0.2;
compensation = salary + commission;
}
public double getCommission() {
return commission;
}
public double getCompensation() {
return compensation;
}
public double getCompensation() {
this.compensation = (salary + getCommission());
return compensation;
}
public String toString() {
NumberFormat fmt = NumberFormat.getCurrencyInstance();
return ("Annual Salary: " + fmt.format(salary) + "\n"
+ "Total Sales: " + fmt.format(sales) + "\n"
+ "Total Commission: " + fmt.format(getCommission()) + "\n"
+ "Total Annual Compensation: " + fmt.format(getCompensation()));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句