BC Math関数を知らない人がいて説明したので、説明した内容を簡単にメモします。
PHPでは仕様上、小数点などを含む計算を行う場合は、誤差が出たり変な値が帰ってきたりすることがあるので、きちんと計算したいときは、BC Math関数を使います。
主な一覧
bcadd - 2つの任意精度の数値を加算する
bccomp - 2 つの任意精度数値を比較する
bcdiv - 2つの任意精度数値で除算を行う
bcmod - 2 つの任意精度数値の剰余を取得する
bcmul - 2つの任意精度数値の乗算を行う
bcpow - 任意精度数値をべき乗する
bcpowmod - 任意精度数値のべき乗の、指定した数値による剰余
bcscale - すべての BC 演算関数におけるデフォルトのスケールを設定する
bcsqrt - 任意精度数値の平方根を取得する
bcsub - 任意精度数値の減算を行う
例えば、合計を出すには bcadd() を使います。
<?php
$a = "1.234";
$b = "5";
echo bcadd($a, $b); // 6
echo bcadd($a, $b, 4); // 6.2340