echo $begrüßung;
$strNewPrice = number_format((double)sprintf ('%.2f', $strPreis2), 2);
sprintf() formatiert doch bereits einen Wert. Wenn du ihn danach wieder in einen Fließkommawert zurückverwandelst, gehe natürlich die Formatierung zugunsten der PHP-internen Darstellung von Fließkommawerten verloren. Dein jetziges Konstrukt ist nun Formatierung->Typecast->Formatierung.
Vermutlich hast du ein generelles Problem, was die Reihenfolge der Verarbeitungsschritte angeht. Es hat sich bewehrt, die Verarbeitung nach dem EVA-Prinzip aufzuteilen. Während der Verarbeitung arbeite mit dem Fließkommawert. Erst wenn du den Wert in die Ausgabe übergibst, formatiere ihn. Die eigentliche Variable bleibt dabei unverändert, nur das Ergebnis der Formatierfunktion fließt in die Ausgabe ein.
echo "$verabschiedung $name";