PHPでの小数点以下の切り上げと切り捨ての方法【現役エンジニアが解説】

PROGRAM

今回は、PHPでの小数点以下の切り上げと切り捨ての方法について、切り上げと切り捨ての方法に分け、簡単に解説していきます。

小数点以下の切り上げの方法

PHPで小数点以下を切り上げたい場合、ceil関数を使います。

echo ceil(1.5); // "2"と出力

第一引数に対象の小数を指定することで、小数点以下が切り上げられます。

VBA等の切り上げ関数とは異なり、任意の基準値の単位ではなく、単純に1円単位で切り上げられます。

小数点以下の切り捨ての方法

PHPで小数点以下を切り捨てたい場合、floor関数を使います。

echo floor(1.5); // "1"と出力

第一引数に対象の小数を指定することで、小数点以下が切り捨てられます。

VBA等の切り捨て関数とは異なり、任意の基準値の単位ではなく、単純に1円単位で切り捨てられます。

小数の計算を行う際の注意点

プログラムで小数の計算を行う場合には、その性質上、微妙な誤差が生じるため、注意が必要です。

$price = 298;
$tax_rate = 1.08;
$post_tax_price = price*(tax_rate*100)/100; // 321.84(対策無しの場合は321.84000000000003となる)
echo "税込".floor($post_tax_price)."円"; // "税込321円"と出力

したがって、上記のように、10のn乗の数を乗じて一旦整数に戻してから計算を行い、再び乗じた数で割って小数に戻すと良いでしょう。

ただし、これでも誤差の全てを回避できるわけではないので、この問題にしっかり取り組む場合には文字列として扱って小数点を取り除き、後で小数点の位置に応じて除算を行う方法を取ると良いでしょう。