我的java任务有一个简单的问题。我的程序正在运行,但我遇到了一个小问题。我想要输出的正确计算,即员工的工资减去税。我相信我没有正确计算它。
再次。问题在于计算本身
这是我在计算方法中得到的
public static void calculate (String[] lastName, double[] salaries, double[] schoolTaxRates, int count)
{
double total;
for (int x = 0; x < count; x++)
salaries[x] *= schoolTaxRates[x];
total = salaries[x] - schoolTaxRates[x];
This input file is:
Jones 40000 .01
Smith 29000 .005
Abelson 60000 .0125
Johnson 30000 .01
Samuels 28000 .01
Blants 48000 .0075
The output after the calculation is ..
Jones $400.00
Smith $145.00
Abelson $750.00
Johnson $300.00
Samuels $280.00
Blants $360.00
你们可以帮助我吗? 日Thnx
答案 0 :(得分:1)
这两行不符合逻辑:
salaries[x] *= schoolTaxRates[x];
total = salaries[x] - schoolTaxRates[x];
对于一个指数x,如果该比率为0.3。薪水是10.然后你正在做的是将薪水改为3,然后使用3 - 0.3 = 2.7。
我建议你将工资计算分解为一个带有以下签名的方法:
double getAfterTaxSalary(double salary,double rate);
答案 1 :(得分:1)
首先,考虑面向对象。
创建一个对象:
更新您的方法签名:
public static double getTotalTax(List<Employee> employees)
其次想想基本的数学......
在你的方法中,你执行迭代遍历列表的for循环并执行:
total += employee.get(i).getSalary()*employee.get(i)*getTaxRate();