Frage

Was ich will, ist so etwas wie dieses:

String.Format("Value: {0:%%}.", 0.8526)

Wo %% ist, dass format-Anbieter oder wie auch immer ich bin auf der Suche nach.Sollte das Ergebnis: Value: %85.26..

Ich im Grunde muss es für die wpf-Bindung, aber lassen Sie uns zuerst zu lösen die Allgemeine Formatierung der Ausgabe:

<TextBlock Text="{Binding Percent, StringFormat=%%}" />
War es hilfreich?

Lösung

Mit dem P Format-String . Dies variiert von Kultur:

String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 % (varies by culture)

Andere Tipps

Wenn Sie einen guten Grund beiseite kulturabhängigen Formatierungen zu setzen und explizite Kontrolle bekommen darüber, ob oder nicht es gibt einen Raum zwischen dem Wert und dem „%“, und ob das „%“ ist am Anfang oder Ende, können Sie Number ist PercentPositivePattern und PercentNegativePattern Eigenschaften.

Um zum Beispiel einen Dezimalwert mit einem nachgestellten „%“ und keinen Raum zwischen dem Wert zu erhalten und dem „%“:

myValue.ToString("P2", new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 });

Weitere komplettes Beispiel:

using System.Globalization; 

...

decimal myValue = -0.123m;
NumberFormatInfo percentageFormat = new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 };
string formattedValue = myValue.ToString("P2", percentageFormat); // "-12.30%" (in en-us)

Wenn Sie ein Format verwenden, die yo die Nummer wie Ihre entrie halten kann dieses Format für mich arbeiten: "# \\%"

Dieser Code kann Ihnen helfen:

double d = double.Parse(input_value);
string output= d.ToString("F2", CultureInfo.InvariantCulture) + "%";

Ich habe mit der oben genannten Antwort, die beste Lösung zu sein, aber ich weiß nicht, wie die führenden Leerzeichen vor dem Prozentzeichen.Ich habe gesehen, etwas komplizierte Lösungen, aber ich habe gerade diesen Ersetzen neben den oben anstatt andere Rundung Lösungen.

String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top