Frage

Ich habe ein Cultureinfo-Objekt mit neuen Culture ( "fr-FR"). Jetzt habe ich eine Nummer, die ich will .ToString ( „C“, FrenchCultureInfo) nennen. Die resultierende Zeichenfolge setzt die € nach der Nummer. Warum?

CultureInfo french = new CultureInfo("fr-FR");
double value = 1234.56;
string output = value.ToString("C", french);//output = "1 234,56 €"

Von allem, was ich gesehen habe, muss der Euro auf der linken Seite sein, und mein geschäftlichen Anforderungen Mandat, dass es auf der linken Seite. Allerdings gibt es keine Möglichkeit, programmatisch diesen Wert festgelegt.

Alle Ideen, wie ich diesen Wert leicht einstellen kann? Ich habe begonnen, ein US-Kultur Objekt zu nehmen und kopiere alles von der Französisch Kultur hinüber, da wir noch die anderen Französisch-Einstellungen alle wollen, mit Ausnahme des Euro auf dem richtigen Wert. Aber diese Methode ist sehr zeitaufwändig und frustrierend.

Danke!

War es hilfreich?

Lösung

Klonen das Original und dann ändern sie:

CultureInfo french = new CultureInfo("fr-FR");
french = (CultureInfo) french.Clone();
// Adjust these to suit
french.NumberFormat.CurrencyPositivePattern = 2;
french.NumberFormat.CurrencyNegativePattern = 2;
double value = 1234.56;
string output = value.ToString("C", french);//output = "€ 1 234,56"

Beachten Sie, dass dies nur, dass bestimmte CultureInfo Objekt auswirken wird, die nicht eine für Französisch in der Regel erhalten -. So dass Sie Sie es sicherstellen, verwenden müssen überall

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top