IT技術に関する情報掲載サイト

プログラミングに関することを掲載します。

PHPのnumber_format関数が自動で、小数点以下を四捨五入してしまう

長くPHPerをしているのですが、PHPのnumber_format関数が自動で、小数点以下を四捨五入してしまうという不具合?をいまさらですが、知ってしまいました。関数の引数で指定することができないので、対策は以下をしました。

 

$value = 1234.5678;
$decimals = 2; // 小数点以下の桁数

// 切り捨ててからフォーマット
$formatted_value = number_format(floor($value * pow(10, $decimals)) / pow(10, $decimals), $decimals);

echo $formatted_value; // "1234.56"

一回桁をずらして、切捨ててもとに戻すっていう手法となります。