金額が止まるのは、精算を締めた瞬間です。 それまでは支払いを足すたび、レートを更新するたびに、精算額は計算し直されます。 だから締める操作は一人が、電波のあるところで、更新してから行います。
共有機能で複数人が同じ部屋にいる場合、レート表は共有されません。 流れるのは人・支払い・設定と、確定した精算です。
締める前は、端末ごとに末尾の数字が違うことがあります。 確定した数字は締めた人の端末のレートで作られて、全員に配られます。
多通貨の割り勘アプリ SplitBill_EX では、一件の支払いに保存されるのは、金額と通貨コード、 日付や支払った人、手数料・税・チップ・個別の貸し借りといった明細です。 レートを書き込む欄だけがありません。
換算はそのつど手元のレート表で行われ、結果が記録に焼き付くことはありません。 同じレート表で全件を換算すれば、誰がどの日に立て替えたかという偶然が結果に入り込みません。 支払いごとに違う日のレートを当てると、たまたま自国通貨が弱い日に財布を出した人だけが、有利あるいは不利になります。
為替手数料とカード手数料は「レート」ではなく手数料の行として扱われ、税やチップを足したあとの金額に乗ります。 手数料は率や額で説明できますが、レートはできないからです。
受け取った応答は素通ししません。HTTPが200番台で、応答が成功を名乗っていて、米ドルが含まれ、5通貨以上そろっていること。 ひとつでも欠ければ丸ごと捨てて前の表を使い続けます。
半分だけ更新すると、通貨ごとに取得時点の違う表ができあがるからです。 混ざった表は、特定の二通貨の間だけ狂うという、いちばん気づきにくい壊れ方をします。
内蔵は、アプリ自身が持つ30通貨ぶんの概算値で、1米ドルが157円、0.92ユーロ、16,200ルピアといった水準です。 取得できた値ではないので、次回に持ち越すレート表としては保存されません。 ただし内蔵レートのまま締めた場合、その値は精算の記録の一部として残ります。
送金額は精算通貨の小数桁で四捨五入され、最小単位の半分に満たない残りは送金になりません。 円・ウォン・ドン・ルピアは小数桁を持たない扱いなので、円で締めれば1円未満は出ません。 締める通貨は、全員が実際に手渡しや送金でやり取りする通貨にしておくのが安全です。
迷ったらここを引きます。例外はひとつ、過去の精算を復元して続けるときに手元が内蔵レートなら、 保存されていたレートを採ります。当時実際に取得できた値のほうが確からしいからです。
| 出所 | そうなる条件 | 端末に保存 | 画面の見え方 |
|---|---|---|---|
| 最新 | この起動、または更新ボタンで取得に成功した | される | 「最新」と、取得からの経過時間 |
| 保存済み | 今回は取れず、前回までに取れた表を使っている。取得に失敗すると最新から降格する | される | 「保存済みレート」と、取得からの経過時間 |
| 内蔵 | 一度も取得に成功していない。30通貨の概算値 | されない | 「内蔵レート」と、更新時刻は「—」 |
| 場面 | 使われるレート |
|---|---|
| お会計を入力している最中 | いま端末が持っている表。換算後の額は表示されるだけで、記録には残らない |
| 旅行中に途中経過を見る | いま端末が持っている表。更新すればその場で全件が計算し直される |
| 精算を締める | 締めた端末がそのとき持っている表。人・支払い・設定・レート・送金額ごと保存される |
| 過去の精算を開く | 計算し直さない。保存された送金額をそのまま表示 |
| 過去の精算をCSVに出す | その精算に一緒に保存されているレート表 |
| 過去の精算を復元して続ける | いまのレート。手元が内蔵レートのときだけ、保存されていたレートを採る |
| オフラインで締める | 直前に取得できた表。「最新」でないことはバッジに出る |
アプリを使わない場合でも、判断の順序は同じです。 支払いは現地通貨のまま控え、手数料はレートに混ぜず別の行にします。
あとは締める日のレートを一本に決め、その値を全員が見える形で書き残すだけです。 書き残しさえすれば、あとで為替がどう動いても、精算をやり直す理由はなくなります。