0

我有一个if执行以下操作的 JavaScript 语句:

如果选择了一种称为无卡的支付方式,则卡费变量设置为总费用的 1%。

if (document.getElementById('payment_method').value == "Cardless") {
    cardfee = ((thetotal * (1 + vatrate)) * 0.01);    
}    
document.getElementById('card_fee').value = cardfee;    
formatPrice(document.getElementById('card_fee'));

问题是,虽然总费用的 1% 很好,但付款方式有上限。它的 1% 但最高为 2 英镑。

我将如何让它进行上面的计算,然后添加另一行,如果 cardfee 大于 2 英镑,则将 cardfee 设置为 2 英镑?

4

2 回答 2

3

您无需更改条件,只需更改分配新值的方式即可。 使用Math.min()您可以将其分配给两个值中的较小者:

if (document.getElementById('payment_method').value == "Cardless") {
    cardfee = Math.min(((thetotal * (1 + vatrate)) * 0.01), 2.0);
}

这样,如果计算结果大于2.0,则赋值为2.0。否则,赋值给计算结果。(如果两者相等,则使用哪一个无关紧要。)

于 2013-09-25T17:27:16.653 回答
0

只需将第二个语句添加到if块的内部

if (document.getElementById('payment_method').value == "Cardless") {
  cardfee = ((thetotal * (1 + vatrate)) * 0.01);
  if (cardfee > 2.0) {
    cardfee = 2.0
  }
}
document.getElementById('card_fee').value = cardfee;
formatPrice(document.getElementById('card_fee'));
于 2013-09-25T17:26:18.283 回答