Format dezimal als Währung basiert auf die Währung code

Ich habe eine Tabelle der Gebühren, der Betrag und die Währung code (USD, JPY, CAD, EUR etc.), und bin auf der Suche nach der einfachste Weg, um richtig formatieren Sie die Währung. Mit meinem lokalen Kultur-code (USA) und das dezimal.ToString("c") bekommt von mir $0.00 Ausgang, aber ich möchte die richtige Währung Zeichen und die Anzahl der Dezimalstellen basiert auf dem code.

Tun alle Bibliotheken gibt es für diese? Ich kann natürlich schreiben Sie eine switch-Anweisung und individuelle Regeln für jeden, aber dachte, das muss getan worden sein, bevor.

Update:

Habe ich geändert Jon B-sample-code wie folgt

static IDictionary<string, string> GetCurrencyFormatStrings()
{
    var result = new Dictionary<string, string>();

    foreach (var ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
    {
        try
        {
            var ri = new RegionInfo(ci.Name);
            result[ri.ISOCurrencySymbol] =
                  string.Format("{0}#,#0.{1};({0}#,#0.{1})",
                                ri.CurrencySymbol,
                                new string('0', 
                                i.NumberFormat.CurrencyDecimalDigits));
        }
        catch { }
    }

    return result;
}

Dies ermöglicht es mir, einfach zu gehen, Betrag.ToString(Währung["JPY"]), und das format der Ausgabe das Komma-Trennzeichen in meinem lokalen Kontext, sondern auch die richtige Währung symbol und Dezimalstellen automatisch.

Lassen Sie mich wissen, wenn jemand eine bessere Möglichkeit, dies zu tun, oder ich werde mark Jon ' s Antwort als richtig kurz.

  • Tatsächlich existiert es. Die genannte CultureInfo.
  • Einfahren meine vorherigen Kommentare, ich beachten Sie, dass RegionInfo kennt die Währung code für eine region, Währung, so dass der Rahmen hat einige Kenntnisse über diese. Ich vermute, Sie gehen zu müssen, zu iterieren, obwohl, wie ich sehe keine Währung-code-basierte Suche.
  • CultureInfo erzählt Sie, wie das formatieren einer Währung-ish Menge in einer bestimmten Kultur. Es muss Ihnen nicht sagen, dass das symbol für JPY ist ¥.
  • Suchen Sie hier ? [Vorherige Frage von Währung ISO-codes][1] [1]: stackoverflow.com/questions/2763128/...
InformationsquelleAutor Superman | 2012-11-13
Schreibe einen Kommentar