征收一定数量的税款

时间:2018-10-08 05:32:27

标签: javascript

是否可以对一定数量的商品征税?
例如:

1:0%税
2-5:5%的税金
6-10:10%税
11-15:15%税
16-20:20%税

问题在于该函数始终对每个数量征收5%的税。
如果应用了税收,则总数应更新,并从那里计算税收和最终总数。

var tax = Math.round(price * 0.05 * 100) / 100

2 个答案:

答案 0 :(得分:1)

您可以使用switch语句。

将其与round逻辑一起包装在一个函数中:

function getTax( price ){
  var taxRate = 0;
  switch( true ){
    case ( price < 2 ):
    // or case ( price <= 1 ) depending on what you need
      break;
    case ( price < 6 ):
      taxRate = 0.05;
      break;
    case ( price < 11 ):
      taxRate = 0.1;
      break;
    case ( price < 16 ):
      taxRate = 0.15;
      break;
    default:
      taxRate = 0.2;
  }
  return Math.round( price * taxRate * 100 ) / 100;
}

然后调用该函数以获取返回值:

var tax = getTax( price );

switch( true )可能会混淆该语句,并非所有人都喜欢。您可以阅读herehere。如果愿意,可以使用if条语句。

另外,请注意有关Math.round函数的some caveats

答案 1 :(得分:0)

据我所知,您使用的是硬编码税。

var tax = Math.round(price * 0.05 * 100) / 100

这里,在changeTotal函数中,您应该使用所需的税额,而不是简单地乘以0.05