0

这是 javascript 代码:即使 pickUptime 小于 20,也将 nightSurcharges 添加到总成本中的代码中存在错误。

function TaxiFare() {

    var baseFare = 2;
    var costPerMile = 0.50;
    var nightSurcharge = 0.50; // 8pm to 6am, every night //its flat 0.50 and not per mile
    var milesTravelled = Number(document.getElementById("miles").value) || 0;
    if ((milesTravelled < 1) || (milesTravelled > 200)) {
        alert("You must enter 1 - 200 miles");
        document.getElementById("miles").focus();
        return false;
    }

    var pickupTime = Number(document.getElementById("putime").value) || 0;
    if ((pickupTime == "") || (pickupTime < 0) || (pickupTime > 23)) {
        alert("The time must be 0-23 hours");
        document.getElementById("putime").focus();
        return false;
    }

    var cost = baseFare + (costPerMile * milesTravelled);

    // add the nightSurcharge to the cost if it is after
    // 8pm or before 6am
    if (pickupTime >= 20 || pickupTime < 6) {
        cost += nightSurcharge;
    }
    alert("Your taxi fare is $" + cost.toFixed(2));
}

我希望仅在pickupTime >=20 时才添加nightSurcharge,但这现在不起作用。任何帮助表示赞赏。谢谢

4

2 回答 2

1

这对我来说似乎很明显。

if (pickupTime >= 20 || pickupTime < 6) {
    cost += nightSurcharge;
}

如果大于或等于 20,或小于 6,则此处nightSurcharge的代码会增加成本。因此,如果小于 6,则当然会增加成本。pickupTime

if (pickupTime >= 20) {
    cost += nightSurcharge;
}

现在它只会在大于或等于 20 时添加。

于 2012-04-17T15:25:02.883 回答
0

你的代码是:

if (pickupTime >= 20 || pickupTime < 6)

所以如果pickingTime小于6它也会进入if

http://jsfiddle.net/7rdzC/

于 2012-04-17T15:25:00.240 回答