有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的运费计算器,得出错误的数字

我是Java新手,我们正在做一个基于不同重量和距离的运费计算器。我们正在练习if-else语句,但我遇到了一个无法解决的问题。 当我计算不同的重量和距离时,我得到了错误的答案。我认为这与我的数学有关,我似乎无法让程序为距离增加下一笔费用,因为它没有使用剩余部分。请帮助我理解这一点

public class ShippingCharges {

private double weight;
private double miles;


public ShippingCharges (double w, double m)
{
    weight = w;
    miles = m;
}


public double getShippingCharges()
{
    double charges;
    if (weight <= 2.0)
    { charges = (1.10 * miles / 500);
    }
    else if ((weight > 2.0) && (weight <= 6.0))
    {
        charges = (2.20 * (miles  / 500 ));
    }
    else if ((weight > 6.0) && (weight <=10.0))
    {
        charges = (3.70 * (miles / 500 )); 
    }
    else 
    {
        charges = (4.80 * miles  / 500);
    }
    return charges;

    }
}

共 (1) 个答案

  1. # 1 楼答案

    根据您所说的,我理解问题在于您没有将英里数/500的结果四舍五入,请尝试以下方法:

    public double getShippingCharges()
    {
        double charges;
        if (weight <= 2.0)
        { charges = (1.10 * Math.ceil(miles / 500));
        }
        else if ((weight > 2.0) && (weight <= 6.0))
        {
            charges = (2.20 * Math.ceil(miles  / 500 ));
        }
        else if ((weight > 6.0) && (weight <=10.0))
        {
            charges = (3.70 * Math.ceil(miles / 500 )); 
        }
        else 
        {
            charges = (4.80 * Math.ceil(miles  / 500));
        }
        return charges;
    
        }