1

私は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;

    }
}
4

1 に答える 1

3

あなたが言ったことから、問題はマイル/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;

    }
于 2013-03-17T21:13:00.040 に答える