Se ionserisco questo codice che mi hai dato
il prezzo va bene separato dalla virgola e non elimina lo zero

invece sul totale appaiono soltanto le prime cifre intere l'altro lo cancella tutto
il codice è il seguente


$prezzo=number_format("$prezzo",2,',','.')."";

$tot=$_SESSION[$contnumerofor]*$prezzo;
$peso=$_SESSION[$contnumerofor]*$row[peso];
$totpag=$totpag+$tot;
$pesotot=$pesotot+$peso;
$ag='aggior';
$ag.=$agg;
$elim='elimina';
$elim.=$agg;

echo "

<td width='120' align='center'>


<font size='2' color='#000080'>
€ $prezzo




</font>

</td>
<td width='160' align='center'>
<font size='2' color='#000080'>
€ $tot


</font>
</td>