Javascript 按一定数量征税

Javascript 按一定数量征税,javascript,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 据我所知,你使用的是硬编码税 var tax = Math.round(price * 0.05 * 100) / 100 在这里,在changeTotal函数中,您应该使用

有可能对一定数量的货物征税吗? 例如: 1:0%税 2-5:5%税 6-10:10%税 11-15:15%税 16-20:20%税 问题是函数总是对每个数量应用5%的税。 如果应用了税收,则应更新总额,并从中计算税收和最终总额

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

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

var tax = Math.round(price * 0.05 * 100) / 100
在这里,在changeTotal函数中,您应该使用所需的税值,而不是简单地乘以0.05。

您可以使用语句

将其与圆形逻辑一起封装在函数中:

switch true可能会混淆此语句的用法,并非所有人都喜欢它。你可以读到关于它的信息,然后。如果你喜欢,可以选择if语句


另外,请注意Math.round函数。

是否尝试使用开关语句并在开关内进行计算?请查看并将代码减少到显示问题所需的最小值。此外,您在一行中执行三个舍入操作,这是一个坏主意。首先做所有的数学运算,然后只在最后四舍五入,因为简单的四舍五入是向上的。我更新了代码片段,以便你能更好地理解。@RobG-关于包含MCVE的好观点,我已经编辑了这个问题。但是对于圆形操作,通常您要为您收取的已经四舍五入的价格支付四舍五入税。也许在这种情况下,两种操作都是必要的。您不需要对最终价格进行四舍五入。是的,但是我如何为不同的数量分配不同的税?创建一个函数来计算给定值的税。为此,您可以使用开关或任何看起来合适的逻辑。不过,我不能为你写下这种逻辑。
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 );