関数の概要
PHPの fdiv 関数は、浮動小数点数の除算を安全に行うための関数です。通常の除算演算子(/)とは異なり、ゼロ除算が発生した場合に警告やエラーを起こさず、INF(無限大)、-INF、または NAN を返します。これにより、除算時の例外処理を簡単にし、安定したプログラムの実装が可能になります。
パラメータの説明
float $num1: 除算の被除数(割られる値)。浮動小数点数として指定します。float $num2: 除算の除数(割る値)。浮動小数点数として指定します。
戻り値
fdiv は、$num1 を $num2 で除算した結果を浮動小数点数で返します。$num2 がゼロの場合でも警告を出さず、以下のような値が返されます。
INF: 正の無限大(正の数をゼロで割った場合)-INF: 負の無限大(負の数をゼロで割った場合)NAN: 数値ではない(0を0で割った場合など)
使用例
基本的な使い方
$result = fdiv(10.0, 2.0);
echo $result; // 5
10を2で割り、正しく5を返します。
ゼロ除算時の挙動(正の数をゼロで割る)
$result = fdiv(10.0, 0.0);
var_dump($result); // float(INF)
ゼロ除算が起きても警告が出ず、無限大 INF が返されます。
ゼロ除算時の挙動(負の数をゼロで割る)
$result = fdiv(-10.0, 0.0);
var_dump($result); // float(-INF)
この場合は負の無限大 -INF が返されます。
ゼロをゼロで割った場合
$result = fdiv(0.0, 0.0);
var_dump($result); // float(NAN)
数値として定義できないため NAN (Not A Number) が返されます。
関連する関数
bcdiv– 高精度計算を行う場合に利用される文字列ベースの除算関数/ 演算子– 通常の除算演算子。ゼロ除算時に警告を出すis_infinite– 値が無限大かどうかをチェックする関数is_nan– 値がNot A Numberかどうかを判定する関数
まとめ
fdivは、浮動小数点数の除算で特にゼロ除算を安全に扱いたいときに便利な関数です。除算の結果が無限大や未定義となっても警告を発しないため、エラー処理を簡略化できます。初心者でも使いやすく、実務でも安定した数値計算を行う際に役立つためぜひ活用してください。
