Formatierte Ausgabe gibt eine falsche Ziffer aus?
*Markus
- php
Hallo,
ich beobachte gerade ein sonderbares Phänomen. Ich lese aus einer DB u.a. folgende Sätze aus:
+-------+
| preis |
+-------+
| 102.8 |
| 95.9 |
| 89.7 |
+-------+
Irgendwann später gebe ich diesen Datensatz so aus:
echo printf("%.2f", $tupel['preis']);
Als Ergebnis bekomme ich aber plötzlich so etwas:
95.905
102.806
89.705
Wo kommt plötzlich die 3. Stelle her, v.a. wieso ist diese 5 und 6?
Gebe ich nur $tupel['preis'] aus, bekomme ich diese Werte:
102.8
95.9
89.7
Somit muss es definitiv an der printf-Anweisung liegen. Nur wie kann ich mir das erklären?
Danke
Markus
Hi,
echo printf("%.2f", $tupel['preis']);
>
> Als Ergebnis bekomme ich aber plötzlich so etwas:
> 95.905
> 102.806
> 89.705
>
> Wo kommt plötzlich die 3. Stelle her, v.a. wieso ist diese 5 und 6?
Weil der definierte Rückgabewert von printf nun mal die Länge der ausgegebenen Zeichenkette ist - was man übrigens auch im Manual nachlesen kann.
printf selber ist schon eine Funktion, die eine Ausgabe erzeugt - da noch mal echo vorzusetzen, ist also a) überflüssig, und führt b) natürlich zum zu erwartenden Effekt, dass eben der Rückgabewert der Funktion ausgegeben wird.
MfG ChrisB
--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
Hallo,
ok, da sah ich wohl den Wald vor lauter Bäumen nicht mehr. So funktioniert die ganze Sache natürlich.
Grüße,
Markus
Hallo,
var_dump ($tupel) würde ich erstmal bestimmen. damit du weißt, wie die werte wirklich ausschauen.
Gruß
jobo