PHPの小数点計算について

投稿者: | 2016年11月29日

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