Rounding

割り勘の端数はどうする?切り上げ・切り捨て・100円単位の考え方

3人で1,000円を割れば333.333…円です。端数をどう扱うかには唯一の正解はありません。大切なのは、正確な負担額と「実際にいくら集めるか」を分け、丸めた後の差額まで処理することです。

First principle

「割り算の結果」と「集金額」は別

たとえば1,000円を3人で均等に負担する数学上の値は1人約333.33円です。しかし現金で集めるなら1円単位、10円単位、100円単位など、実際に扱う単位へ丸める必要があります。

四捨五入

基準単位の半分以上を上げ、それ未満を下げます。合計が元金額と一致するとは限りません。

切り捨て

基準単位未満を下げます。集める総額は不足しやすく、差額を誰が負担するか決める必要があります。

切り上げ

端数があれば上げます。集める総額は余りやすく、余剰分をどう扱うか決める必要があります。

Where to round

同じ100円単位でも「どこで丸めるか」で結果が変わる

品目別割り勘では、共有品ごとに丸める方法と、すべての品目を各人へ割り当ててから最終合計だけ丸める方法があります。

例:共有品 1,100円と500円を3人で等分し、100円単位へ四捨五入

品目ごとに丸める場合:
1,100 ÷ 3 ≒ 366.67 → 400円
500 ÷ 3 ≒ 166.67 → 200円
1人 600円、3人合計 1,800円(元の1,600円より200円多い)

最後の個人合計だけ丸める場合:
(1,100 + 500) ÷ 3 ≒ 533.33 → 500円
3人合計 1,500円(元の1,600円より100円少ない)

このように、同じ「100円単位の四捨五入」でも丸める段階で余り・不足の出方が変わります。差を追跡しやすくしたいなら、可能な範囲で正確な値を保持し、最後の個人合計で丸める方法があります。ただし「途中で丸めないのが常に正しい」というルールではなく、どの方法でも最後の差額処理まで決める必要があります。

Residual

余り・不足が出たら、最後に差額を処理する

幹事・立替者が差額を持つ

数十円程度なら、集金の簡単さを優先して立替者が余り/不足を引き受ける方法。

1人だけ微調整する

他の人を同額にし、最後の1人で合計を合わせる方法。誰を調整対象にするかは事前に決めます。

端数を分散する

1円ずつなど複数人へ分けて、元の合計と一致させる方法。

送金なら正確な金額を使う

現金の小銭を避ける必要がない場合は、計算結果に近い単位で送金し、丸め自体を小さくできます。

Checklist

端数ルールを決めるときの確認

  • 何円単位まで扱うか。
  • 四捨五入・切り上げ・切り捨てのどれを使うか。
  • 品目ごとか、最後の個人合計か、どの段階で丸めるか。
  • 丸め後の全員合計と会計総額に差が出たら誰が処理するか。
  • 旅行精算なら、途中の各会計と最後の残高で丸め方が混在していないか。

立て替え全体の残高計算は、誰が誰にいくら払うかで確認できます。

TossReci fit

TossReciには端数処理の計算ロジックがある

現在のコードでは、四捨五入・切り捨て・切り上げに相当する端数処理ロジックと単位設定を扱う実装を確認しています。

ただし、今回の監査では「現在のすべてのユーザーにどの単位・モードがUI上で表示されるか」まで完全には追跡していません。そのため、このサイトでは古いストア文面などから具体的なメニュー選択肢を実装済みとして断定しません。