Domanda

Quello che voglio è qualcosa di simile:

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

Dove %% è che provider di formato o qualsiasi altra cosa che sto cercando. Dovrebbe risultare:. Value: %85.26.

Io fondamentalmente bisogno per il legame WPF, ma prima cerchiamo di risolvere il problema di formattazione generale:

<TextBlock Text="{Binding Percent, StringFormat=%%}" />
È stato utile?

Soluzione

Utilizza il P formato di stringa . Questo può variare dalla cultura:

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

Altri suggerimenti

Se si dispone di un buon motivo per mettere da parte la formattazione cultura-dipendenti e ottenere il controllo esplicito sulla necessità o meno c'è uno spazio tra il valore ed il "%", e se il "%" sta conducendo o finali, è possibile utilizzare di NumberFormatInfo PercentPositivePattern e PercentNegativePattern proprietà.

Ad esempio, per ottenere un valore decimale con un trascinamento "%" e nessuno spazio tra il valore e la "%":

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

esempio più completo:

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)

Se si desidera utilizzare un formato che permette yo mantenere il numero di come il vostro entrie questo lavoro formato per me: "# \\%"

Questo codice può aiutare a:

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

Ho trovato la risposta di cui sopra per essere la soluzione migliore, ma non mi piace lo spazio iniziale prima che il segno di percentuale. Ho visto le soluzioni un po 'complicato, ma mi basta usare questo Sostituire aggiunta alla risposta di cui sopra, invece di utilizzare altre soluzioni di arrotondamento.

String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top