2010-07-27 16 views
5

Viele Sprachen wie .NET languages und Java sind mit einer integrierten Währungsformatierung ausgestattet. Sie formatieren eine Zahl mit einem kulturspezifischen Zahlenformat und fügen das Währungssymbol der Kultur hinzu.Sind Währungsformatierungsfunktionen tatsächlich nützlich?

Das Problem hier ist, dass das Zahlenformat stark an das Währungssymbol gekoppelt ist. In der Praxis sollte das Zahlenformat das richtige für die Sprache des umgebenden Textes sein, während das Währungssymbol für die Währung sein sollte, über die gesprochen wird. Zum Beispiel würden Sie keine amerikanischen Tausendertrennzeichen verwenden, wenn Sie in einem deutschsprachigen Dokument über US-Dollar sprechen.

Können Sie sich eine praktische Anwendung für diese Art von Währungsformatierungsfunktionen vorstellen, oder existieren sie nur, um geldorientierte Management-Leute zu beeindrucken?

+0

Ist das Symbol für die Währungseinheit immer an das Trennzeichen gebunden oder trennbar? Die 'money_format'-Funktion von PHP ermöglicht eine ziemlich genaue Kontrolle über die formatierte Zeichenkette, einschließlich der Fähigkeit, das Währungssymbol zu unterdrücken. –

+0

Ist es nicht nützlich für eine globale Anwendung, die von Benutzern in verschiedenen Ländern verwendet wird, die Geld in ihrem lokalen Format anzeigen möchten? Oder verpasse ich den Punkt? –

+0

@no: .NET scheint es Ihnen zu ermöglichen, das Währungssymbol zu ändern (benötigt ein paar Zeilen Code, was einen Schritt von der sauberen Formatzeichenfolge entfernt ist. In einigen Kontexten können Sie auch nur eine Formatzeichenfolge angeben) . Ich konnte keinen Weg finden, es in Java zu tun, aber ich bin nicht gerade ein Java-Experte, also kann ich nicht mit Sicherheit sagen. –

Antwort

1

Zumindest in .NET ist das Zahlenformat an eine Kultur gebunden, nicht an das Symbol. Das Standardwährungssymbol ist das primäre Währungssymbol, das dieser Kultur zugeordnet ist. Das Symbol kann nach Bedarf überschrieben werden.

Wie in Ihrem Beispiel, wenn ich einen Währungswert in eine Zeichenfolge einbetten, dann verwende ich die Kultur der Zeichenfolge für das Format, aber überschreiben Sie das Währungssymbol entsprechend. Der Rest der Formatierung bleibt unverändert.

Auf der anderen Seite, wenn ich einen Bericht mache, werden alle Werte mit der gleichen Kultur formatiert. Ich verwende normalerweise die ISO-3-Zeichen-Codes anstelle von Währungssymbolen in diesem Fall, besonders wenn mehr als 2 Währungen beteiligt sind, um Font-Probleme zu vermeiden.

Ryan's answer to another question beschreibt die Best Practices für die Währungsformatierung in C#.

+0

Das Ändern des Währungssymbols ist ein guter Punkt, obwohl es sehr viel Code für etwas benötigt, das IMHO ein Teil der Formatparameter sein sollte. Es ist auch leicht, Probleme mit Währungssymbolen in der falschen Größe ($ 50 vs. 50 kr) auftreten, nicht zu erwähnen, dass einige Währungen tatsächlich ändern Reihenfolge abhängig von der locale (50 € vs 50 €) –

+1

Ich schrieb eine Erweiterungsmethode auf "Dezimal", um alle Arbeit zu behandeln, etwas ähnlich dem Beispiel von Jon Skeet hier: http://stackoverflow.com/questions/1071273/currency-formatting/1071302#1071302 – devstuff

Verwandte Themen