税后薪水

时间:2014-04-22 22:00:18

标签: java arrays math

我的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

2 个答案:

答案 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)

首先,考虑面向对象。

创建一个对象:

  • 具有3个字段的对象员工
    • 名称:字符串
    • 薪水:双倍
    • 税率:双倍

更新您的方法签名:

public static double getTotalTax(List<Employee> employees)

其次想想基本的数学......

在你的方法中,你执行迭代遍历列表的for循环并执行:

total += employee.get(i).getSalary()*employee.get(i)*getTaxRate();