新型コロナの影響もだいぶ落ち着いてきて「友人と食事に行ってきた」という話を聞く機会も増えてきました。すると、「割り勘」で支払いをする機会も増えるものです。日本では日常的な割り勘での支払いですが世界的には珍しいそうです。今回は、そんな日本の文化でもある「割り勘」が簡単に計算できる電卓を作ってみましょう。
「割り勘」と一言で言っても簡単ではない
「割り勘」とは食事会などの支払いを人数分で割って支払うことです。既に紹介したとおり、世界的に見ると、割り勘で支払うことは少ないのです。逆に中国や韓国では割り勘を申し出るのは失礼に当たることもあるようです。
支払い金額を人数で割るだけなので簡単なように見えますが、状況によって次のような条件で割り勘にする場合もあります。
- 会社の食事会など、会社が一定金額を出してくれるので、残りを割り勘にする
- 学生と社会人の勉強会などでは、学生は社会人の半額にする
- 女性の参加費は固定費にして残りを男性で割り勘にする
加えて、どうしても端数が出ます。最近では電子マネーを使って1円単位での受け渡しも容易になりました。しかし、中には電子マネーを使っていない人もいるので、現金で支払うこともあるでしょう。その場合、1円単位で払うのは大変なので、10円単位や100円単位で端数処理をする必要もあります。この端数を幹事が払うのか、幹事が損をしないように端数分をのせて払うのかを選ぶ必要があります。
こうして考察すると、割り勘も簡単ではないですよね。あらゆる条件を作っていると、プログラムが長くなってしまうので、今回は次の条件の割り勘電卓を作ってみましょう。
- 会社の食事会を想定する
- 会社が一定額を支給してくれる
- 100円単位で端数を丸める
- 幹事は平社員が行うので幹事が損をしないようにする
簡単に計算するプログラムを作ろう
まずは、計算画面などを作らず、割り勘計算をするだけのプログラムを作ってみましょう。なでしこ簡易エディタに以下を貼り付けてみてください。
# === 以下を書き換えます ===
支払総額=18300
援助額=5000
参加人数=4
丸め金額=100
# === 以下は計算処理 ===
対象金額=支払総額 - 援助額
割り勘額=INT((対象金額÷参加人数)÷丸め金額+1)×丸め金額 # --- (*1)
# 結果
集金総額=割り勘額×参加人数
余剰額=集金総額+援助額−支払総額
「集金総額={集金総額}」を表示。
「一人支払い={割り勘額}」を表示。
「幹事支払い={割り勘額-余剰額}」を表示。
エディタにプログラムを貼り付けて「実行」ボタンを押すと、次のように表示されます。プログラム冒頭にある変数「支払総額」や「援助額」「参加人数」の値を変更して使います。
プログラムを確認してみましょう。と言っても、考慮すべき点は割り勘金額を計算する(*1)の部分です。基本的に割り勘は、対象金額を参加人数で割るだけですが、丸め金額を利用して、丸め処理を行います。
INT関数は引数を受け取り、小数点以下を切り捨てて整数に変換するものです。そのため「INT(値÷丸め金額)×丸め金額」と書くことで端数単位での切り捨てが可能です。ここでは切上をしたいので、「INT(値÷丸め金額+1)×丸め金額」と+1を加えます。ちなみに、なでしこには「切上」命令があるので、+1と書かずに「(切上(値÷丸め金額))×丸め金額」のように記述することもできるでしょう。