calc / tax
消費税計算
税抜き価格から税込み価格、税込み価格から税抜き価格を即座に計算します。 消費税10%・軽減税率8%に対応。端数処理は切り捨て・切り上げ・四捨五入から選択できます。
税率
端数処理
使い方
01- 「税抜→税込」または「税込→税抜」のタブを選択してください
- 税率を「10%(標準)」または「8%(軽減)」から選択してください
- 端数処理を「切り捨て」「切り上げ」「四捨五入」から選択してください
- 金額を入力するとリアルタイムで消費税額と計算結果が表示されます
- 結果横のコピーボタンで数値をクリップボードにコピーできます
実装コード
02外部ライブラリ不要のTypeScriptのみで実装。端数処理を関数に分離することで、各計算関数は純粋関数として保たれます。そのままコピーして利用できます。
export type RoundingMode = 'floor' | 'ceil' | 'round'
export type TaxRate = 0.08 | 0.10
function applyRounding(value: number, mode: RoundingMode): number {
switch (mode) {
case 'floor': return Math.floor(value)
case 'ceil': return Math.ceil(value)
case 'round': return Math.round(value)
}
}
// 税抜き → 税込み
export function calcTaxIncluded(
priceExcl: number,
rate: TaxRate,
rounding: RoundingMode,
): { taxAmount: number; priceIncluded: number } {
const rawTax = priceExcl * rate
const taxAmount = applyRounding(rawTax, rounding)
const priceIncluded = priceExcl + taxAmount
return { taxAmount, priceIncluded }
}
// 税込み → 税抜き
export function calcTaxExcluded(
priceIncl: number,
rate: TaxRate,
rounding: RoundingMode,
): { taxAmount: number; priceExcluded: number } {
// 浮動小数点誤差を抑えるため整数演算に変換
// 例: 1100 / 1.10 → (1100 * 100) / 110 = 1000
const multiplier = rate === 0.10 ? 110 : 108
const rawExcl = (priceIncl * 100) / multiplier
const priceExcluded = applyRounding(rawExcl, rounding)
const taxAmount = priceIncl - priceExcluded
return { taxAmount, priceExcluded }
}よくある使用例・注意点
03軽減税率8%の対象品目
軽減税率(8%)が適用されるのは「飲食料品(酒類・外食を除く)」と「週2回以上発行される新聞(定期購読のもの)」です。コンビニでの食品・飲料の購入は8%ですが、イートインスペースで飲食する場合は標準税率10%になります(軽減税率との選択適用)。
端数処理の選び方
消費税計算における端数処理のルールは法律で定められておらず、事業者が自由に選択できます。一般的には切り捨て(floor)が多く使われます。国税庁の規定では「1円未満の端数が生じた場合に切り捨て・切り上げ・四捨五入のいずれも認める」とされています。レシートの表示と合わせて選択してください。
税込み価格から税抜き価格を求める計算式
税込み価格 ÷ (1 + 税率) = 税抜き価格です。例えば税込1,100円(税率10%)の場合、1,100 ÷ 1.1 = 1,000円となります。割り算が生じるため端数が出やすく、端数処理の選択が重要です。
請求書・領収書での消費税の記載
2023年10月から開始したインボイス制度(適格請求書等保存方式)では、請求書に適用税率と消費税額を明記する必要があります。軽減税率対象の商品とそれ以外が混在する場合は、税率ごとに合計額と消費税額を分けて記載してください。
関連ツール
04ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →