【问题标题】:Salary After Tax税后薪金
【发布时间】:2014-04-22 22:00:17
【问题描述】:

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

你们能帮我解决这个问题吗? 谢谢

【问题讨论】:

  • 是什么让您相信它的计算不正确?任一数组中的 any 值是否为 0?
  • 当前的输出是什么,你期望它是什么?工资和 schoolTaxRates 的起始值是多少?
  • 不完全确定,但看起来您每次迭代都在写入同一个变量totali..所以只有最后一个值会存活
  • 我编辑了我的帖子以显示输入文件和输出文件中的内容。您可以在输入文件中看到应该从工资中扣除的税款。

标签: java arrays math


【解决方案1】:

这两行不合逻辑:

salaries[x] *= schoolTaxRates[x];
total = salaries[x] - schoolTaxRates[x];

对于一个索引 x,如果比率为 0.3。薪水是 10。那么你所做的就是将薪水改为 3,然后使用 3 - 0.3 = 2.7。

我建议你将工资计算分解为一种方法,签名如下:

double getAfterTaxSalary(双倍工资,双倍税率);

【讨论】:

    【解决方案2】:

    首先,考虑面向对象。

    创建一个对象:

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

    更新你的方法签名:

    public static double getTotalTax(List<Employee> employees)
    

    其次考虑基本数学...

    在您的方法中,您执行循环遍历列表并执行以下操作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      相关资源
      最近更新 更多