1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[PHP]基本金額の入力から税込金額の入力に対応した際の失敗話

Last updated at Posted at 2022-11-02

自省を兼ねてメモとして残す

旧システムでは基本料金を入力することで消費税が計算され、
総額入力が表示されるようになっていた。

例:基本金額 8727円 → 消費税 872.7 → 税込金額 9599.7円

税込金額表示の際に利用されていたのが、 number_formatであったため切り上げて処理
9599.7 → 9600

新システムでは税込金額を入力することで、
基本金額と消費税が自動で計算されるようになった。

税込金額 9600円 → 基本金額 8728 + 消費税 872

この際税込金額をDBに格納できていれば問題なかったのだが、
改修の都合上DBに入れられるのは基本金額のみ。

すると以下の問題が発生する。

例:基本金額 8728円 → 消費税 872.8 → 税込金額 9600.8円

税込金額を正しく(9600として)表示するためにfloorを利用して切り捨て処理
9600.8 → 9600

利用する関数をnumber_format→floorに変更することで9600と丸く収めた。
のだが、金額を扱っている物なので正しい表記は 9,600 でなければならない。

number_formatによる切り上げとfloorによる切り捨てに目が行き過ぎて、
金額整形してくれていることを忘れてしまったという失敗でした。

正しくは以下のように修正しなければならなかった。

失敗:number_format(hoge); → floor(hoge);

正解:number_format(hoge); → number_format(floor(hoge));

結論

金額を取り扱っている場合はただ数字だけに注目するのではなく、
表示(,による3桁区切りのフォーマット)にも注意しよう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?