Aktueller Standort: Startseite> Neueste Artikel> Wie format man Währungswerte mit Dezimalpunkten mit Money_Format? Praktischer Leitfaden

Wie format man Währungswerte mit Dezimalpunkten mit Money_Format? Praktischer Leitfaden

M66 2025-06-22

1. Was ist Money_Format?

Money_Format () ist eine Funktion, die das aktuelle Gebietsschema (Regionseinstellung) verwendet, um Zahlen als Währungszeichenfolgen zu formatieren. Seine Syntax ist wie folgt:

 string money_format ( string $format , float $number )

In:

  • $ format ist eine Formatkontrollzeichenfolge, ähnlich dem in Sprintf () verwendeten Format.

  • $ nummer ist die Nummer (Betrag), die Sie formatieren möchten.


2. Stellen Sie das richtige Gebietsschema fest (Lokalisierung)

Damit Money_Format () richtig funktioniert, müssen Sie zuerst eine Lokalisierungsumgebung einrichten. Sie können die SetLocale () -Funktion zum Setzen verwenden. Zum Beispiel auf ein lokalisiertes Format für die Region der Vereinigten Staaten festgelegt:

 setlocale(LC_MONETARY, 'en_US.UTF-8');

Beachten Sie, dass verschiedene Systeme (insbesondere Windows und Linux) das Gebietsschema unterschiedlich unterstützen. Möglicherweise müssen Sie das entsprechende Sprachpaket installieren.


3. Formatieren Sie die Währung mit Dezimalpunkten

Hier ist ein vollständiges Beispiel für Formatierungsmengen:

 setlocale(LC_MONETARY, 'en_US.UTF-8');

$amount = 1234.56;
echo money_format('%.2n', $amount);

Die Ausgabe kann sein:

 $1,234.56

In:

  • '%.2n' bedeutet, dass das Währungsformat von zwei Ziffern nach Verwendung des Dezimalpunkts beibehalten wird.

  • N ist der vom Gebietsschema definierte Währungsformat -Typ;

  • .2 Gibt die Anzahl der Ziffern nach dem Dezimalpunkt an.


4. Support mehrsprachige Währungsanzeige

Wenn Sie die Anzahl der verschiedenen Formate entsprechend der Benutzersprache dynamisch anzeigen möchten, können Sie sie dynamisch in Kombination mit SetLocale () festlegen:

 $amount = 9876.54;

setlocale(LC_MONETARY, 'de_DE.UTF-8');
echo "Deutsches Format: " . money_format('%.2n', $amount) . "\n";

setlocale(LC_MONETARY, 'fr_FR.UTF-8');
echo "Französisches Format: " . money_format('%.2n', $amount) . "\n";

Ausgabe:

 Deutsches Format: 9.876,54 €
Französisches Format: 9 876,54 €

Dies ist sehr praktisch für internationale Websites (wie https://m66.net/ecommerce/intl-support).


V. Alternative Lösung (anwendbar für PHP 8.0 und höher)

Wie bereits erwähnt, wurde Money_Format () in Php 8 entfernt. Wenn Sie die neue Version von PHP verwenden, wird empfohlen, stattdessen NumberFormatter (aus der INTL -Erweiterung) zu verwenden:

 $amount = 5678.90;

$fmt = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
echo $fmt->formatCurrency($amount, 'USD');

Ausgabe:

 $5,678.90

Die Verwendung von Numberformatter ist nicht nur mit neuen Versionen kompatibel, sondern bietet auch eine stärkere internationale Unterstützung und ist für Produktionsumgebungen geeignet.