Der Martin: preis formatierung bei php

Beitrag lesen

Hallo,

ich habe Problem mit dem Preis Format. Nachkomma Stelle wird  nicht berücksichtigt. Z.B.  29.90 * 2 = 59,8 und nicht 58. Ich verstehe es nicht, wieso berechnet er 58?

$gespreis = number_format($gespreis , 2, ',', '');
$endpreis_ohne_versandkosten = floatval($endpreis_ohne_versandkosten) + $gespreis;

hier wandelst du $gespreis erst in das "kaputte" Format mit einem Komma als Dezimaltrennzeichen um, dann addierst du diesen Wert wieder. Dabei werden natürlich die Nachkommastellen ignoriert; sie sind ja mit einem Komma vom eigentlichen Wert abgetrennt.
Hast du womöglich in $endpreis_ohne_versandkosten auch schon ein Komma anstelle eines ordentlichen Dezimalpunkts? Dann wäre es klar, dass die Nachkommastellen nicht mitgerechnet werden.

Mach bitte solche Umwandlungen, bei denen das Dezimaltrennzeichen verstümmelt wird, immer erst als allerletzten Schritt, bevor du die Daten ausgibst - niemals schon im Lauf der Rechnung!

Ciao,
 Martin

--
F: Was ist schneller: Das Licht oder der Schall?
A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.