是否可以对一定数量的商品征税?
例如:
1:0%税
2-5:5%的税金
6-10:10%税
11-15:15%税
16-20:20%税
问题在于该函数始终对每个数量征收5%的税。
如果应用了税收,则总数应更新,并从那里计算税收和最终总数。
var tax = Math.round(price * 0.05 * 100) / 100
答案 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 )
可能会混淆该语句,并非所有人都喜欢。您可以阅读here和here。如果愿意,可以使用if
条语句。
另外,请注意有关Math.round
函数的some caveats。
答案 1 :(得分:0)
据我所知,您使用的是硬编码税。
var tax = Math.round(price * 0.05 * 100) / 100
这里,在changeTotal
函数中,您应该使用所需的税额,而不是简单地乘以0.05
。