金種計算をJavaScriptで作った

業務で作ったものです。

金種計算って何?

金額に対して貨幣や紙幣をそれぞれ何枚使うかを出す計算です。額の大きな貨幣から順に使用していくようにしています。例えば、12345 円なら貨幣と紙幣をそれぞれ何枚使いますか? この結果になります 👇

金額: 1234510000円: 15000円: 01000円: 2500円: 0100円: 350円: 010円: 41円: 1

ソースコード

function calculateDenominations(amount) {
  const denominations = [10000, 5000, 1000, 500, 100, 50, 10, 1]  // 貨幣・紙幣
  const result = {}

  for (let i = 0; i < denominations.length; i++) {
    const denomination = denominations[i]
    const count = Math.floor(amount / denomination)
    result[denomination] = count
    amount -= denomination * count
  }

  return result
}

// 例: 12345円を入力した場合
const amount = 12345  // 必要に応じて入力欄などから取得する。
const result = calculateDenominations(amount)

console.log(`金額: ${amount}`)
for (let denomination in result) {
  console.log(`${denomination}円: ${result[denomination]}`)
}

使いどころ

業務では、税金関連の表の出力のために作りました。表にする都合上、結果が 0 枚のものも出力するようにしています。また、業務では印紙の枚数を出したのですが、わかりにくいのでこの記事では貨幣にしました。

お役に立てれば幸いです 💕

Share