Hallo,
number_format($float, $dezimalstellen, $dezimaltrenner, $tausdertrenner);
sollte man unmittelbar bei der Ausgabe verwenden. Besonders wenn man wie Du die Variable "wiederverwendet". Wenn irgendwann mal zwischen der Zeile
$feld1 = number_format($feld1, 2, ',', ' ');
und der Ausgabe ein paar Zeilen liegen und Du Dich nicht mehr gut an Dein Programm erinnerst versuchst Du vielleicht mit $feld1 noch was zu berechnen - was dann (wie Du ja erlebt hast) zu merkwürdigen Ergebnissen führt. Das, weil PHP dann versucht den String als Zahl zu interpretieren und beim Komma (als für eine Zahl ungültiges Zeichen) einfach aufhört. So wird dann aus "21,4" einfach die Zahl 21.
wollte ich eigentlich auch, denn ich muss etwas weiter oben wie du schon richtig geschrieben hast damit noch weiter rechnen. Wenn ich dieses direkt bei der Ausgabe anwende
<?php echo number_format($feld1, 2, ',', ' ');?>
knallt es wieder :/ "Warning: number_format() expects parameter 1 to be double, string given in" deshalb muss ich oben eben aufpassen.