Java 有人能解释一下我的代码有什么问题吗?

Java 有人能解释一下我的代码有什么问题吗?,java,Java,税收取决于他们的工资差距有多大。如果工资彼此相差在10000美元以内,则税款为总额的5%。如果他们的收入相隔超过10000美元,则税款为较大收入的5%加上较小收入的3%。 有人能解释一下我的if语句有什么不对吗 } }您希望将incomeDistance设置为Math.abs(income1-income2)以获得差值的绝对值。按照您的方式,如果income2income1您将分支到错误的代码块 以20000和30000.01为例。此时,incomeDistance变为20000-30000

税收取决于他们的工资差距有多大。如果工资彼此相差在10000美元以内,则税款为总额的5%。如果他们的收入相隔超过10000美元,则税款为较大收入的5%加上较小收入的3%。 有人能解释一下我的if语句有什么不对吗


}



}

您希望将
incomeDistance
设置为
Math.abs(income1-income2)
以获得差值的绝对值。按照您的方式,如果
income2
income1
您将分支到错误的代码块


以20000和30000.01为例。此时,
incomeDistance
变为20000-30000.01或-10000,小于10000

您希望将
incomeDistance
设置为
Math.abs(income1-income2)
以获得差值的绝对值。按照您的方式,如果
income2
income1
您将分支到错误的代码块


以20000和30000.01为例。此时,
incomeDistance
变为20000-30000.01或-10000,小于10000

你必须确保不可调解的结果不是负面的。因为如果收入2大于收入1,在代码中,结果将显示为负数

如果结果为负,则将结果乘以(-1) 希望仅为一个目的包含整个库


你必须确保调解的结果不是负面的。因为如果收入2大于收入1,在代码中,结果将显示为负数

如果结果为负,则将结果乘以(-1) 希望仅为一个目的包含整个库


为什么不实际运行代码并查看返回的“税”是什么?下次遇到此类问题时的建议:尝试使用调试器运行测试,并检查它是否按预期一步一步地运行。为什么不实际运行代码并查看返回的“税”是什么是吗?下次遇到此类问题时的建议:尝试使用调试器运行测试,并检查它是否按预期一步一步地运行。
public double spouseDistance(double income1, double income2)
{
    double tax;
    double totalincome = income1 + income2;
    double incomedistance = income1 - income2;
    if (incomedistance > 10000)
    {
        if(income1 > income2)
        {
            tax = income1 * 0.05 + income2 * 0.03;
        }else
    {
        tax = income2 * 0.05 + income1 * 0.03;
    }
    }
        else
        {
            tax = totalincome * 0.05;
        }

    return tax;
}
@Test
public void testSpousesDistance()
{
    TaxCalculator tc = new TaxCalculator();
    // The border case here is when the difference between the
    // salaries is 10,000 and the value changes at 10,000.01.
    // Since the order of the parameters shouldn't matter, do
    // both cases with both parameter orders
    assertEquals(40000*0.05, tc.spouseDistance(25000,15000), 0.001);
    assertEquals(40000*0.05, tc.spouseDistance(15000,25000), 0.001);
    assertEquals(30000.01*0.05 + 20000*0.03,tc.spouseDistance(20000.00,30000.01), 0.001);
    assertEquals(30000.01*0.05 + 20000*0.03,tc.spouseDistance(30000.01, 20000.00), 0.001);
}