Un trucco per non farli arrotondare è impostare a zero il decimale di una potenza inferiore a quello che ti interessa.
Es. 1234,56789 e vuoi ottenere 1234,56
imposti a zero il terzo decimale e poi applichi number_format.


Altra soluzione, proposta su php.net:
Codice PHP:
function fnumber_format($number$decimals=''$sep1=''$sep2='') {

        if ((
$number pow(10 $decimals 1) % 10 ) == 5)  //if next not significant digit is 5
            
$number -= pow(10 , -($decimals+1));

        return 
number_format($number$decimals$sep1$sep2);