長く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"
一回桁をずらして、切捨ててもとに戻すっていう手法となります。