🍆

税込み価格と税抜き価格から "それっぽい消費税率" を返してくれる関数

2024/07/11に公開

消費税率が混在している(酒類の税率とか軽減税率とか)とき、税込み価格と税抜き価格から8%なのか、10%なのかを判定してくれる便利な関数を置いておきます。

function calcTaxRate(basePrice: number, inTaxPrice: number) {
  const taxAmount = inTaxPrice - basePrice;
  const taxRate = (taxAmount / basePrice) * 100;

  // 小数点以下の誤差を考慮して、近い方の税率を返す
  if (Math.abs(taxRate - 8) < Math.abs(taxRate - 10)) {
    return 8;
  } else {
    return 10;
  }
}

第一引数には税抜き価格。
第二引数には税込み価格を渡します。

使ってみる

console.log(calcTaxRate(1000, 1100));

この結果は 10 となります。

console.log(calcTaxRate(102, 110));

console.log(calcTaxRate(102, 111));

どちらも結果は 8 となります。

スクレイピング処理などで税率を知る必要がある場合にとても便利です!

Discussion