Calculateur de frais d'expédition en Java, à venir avec de mauvais chiffres


Je suis nouveau sur Java et nous faisons un calculateur de frais d'expédition basé sur différents poids et distances. Nous pratiquons les déclarations if-else mais je rencontre un problème que je ne peux pas comprendre. Lorsque je calcule différents poids et distances, je reçois les mauvaises réponses. Je pense que cela a quelque chose à voir avec mes mathématiques où je n'arrive pas à obtenir le programme pour ajouter la prochaine charge pour la distance car il n'utilise pas le reste. Merci de m'aider à comprendre cela.

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;

    }
}
Author: Petr Mensik, 2013-03-18

1 answers

D'après ce que vous avez dit, je comprends que le problème est que vous n'arrondissez pas le résultat miles/500, essayez ceci:

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;

    }
 2
Author: Mr D, 2013-03-17 21:26:18