O sono io che faccio casino, o c'è qualcosa che non quadra con php e i decimali.

Perchè una cosa del genere
Codice PHP:
$a 247.715;
echo 
number_format($a20); 
mi restituisce 247.71500000000003183231 invece che 247.71500000000000000000 ??

C'è un qualche parametro da settare?