最近、売上管理データベースに保存されている当月の売上と前年比を表示するPHPを書いた。

その時、Division by zeroエラー(ゼロ除算エラー)が発生したので、簡単な回避法を紹介する。

前年比を求める際に発生するゼロ除算エラーとは

まず、売上の前年比を求める計算式をおさらいしよう。

$$前年比 = \frac{当月売上高}{前年同月の売上高}$$

この計算式をPHPで書くと以下のようになる。

$data['前年比'] = $data['当月売上高'] / $data['前年同月の売上高'];

PHPでは除算(割り算)をおこなう際、どちらか片方の値が0(ゼロ)の場合、Division by zeroエラーが発生してしまうのだ。

ゼロ除算エラーの回避法

そこで、先ほどのPHPコードを以下のように書き替える。

$data['前年比'] = $data['前年同月の売上高'] ? $data['当月売上高'] / $data['前年同月の売上高'] : 0;

要は、前年のデータが存在しない場合(例えば設立1期目の場合など)にゼロ除算エラーが起こるので、三項演算子を使って存在しない場合は0を代入し、計算をおこなわないようにしているというわけだ。