Auge: US Betrag ins deutsche Format

Beitrag lesen

Hallo

Hallo,
ein script liest eine Datei ein die Beträge im US Format hat.
Ich habe es so wie unten mit number_format versucht, den Betrag ins deutsche Format zu bringen.

$revenue = "122,000.00";
$number_format_german = number_format($revenue, 2, ',', '.');

Hier kommt aber eine Meldung wie "a non well formed..." Ich vermute das number_format nur mit dem Punkt als Tausender Trennzeichen funktioniert?

Nein. Das Problem ist, dass du der Funktion keine echte™ Zahl sondern einen als String mit einer formatierten Ziffernfolge anbietest. Mit einer unformatierten Zahl (122000.00) oder einem solchen String ("122000.00") wird die Funktion funktionieren. Die Beschreibung der Funktion ist da eindeutig (string number_format ( float $number [, int $decimals = 0 ] )). Als erster Parameter wird eine Fließkommazahl erwartet. Ein String, der passend formatiert ist, wird wegen der automatischen Typumwandlung ebenso akzeptiert.

Wie könnte man diesen Betrag einfach ins deutsche format bringen also;

122.000,00

Mit number_format. Zuvor muss der amerikanische Zahlenstring aber erst in ein Zahlenformat gebracht werden. Wenn du genau weißt, dass du ein definiertes Eingangsformat bekommst, kannst du z.B. alle Kommata aus dem String löschen, die vor dem einen Punkt auftreten.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}