Question

Ce que je veux est quelque chose comme ceci:

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

Où %% est que fournisseur de format ou tout ce que je cherche. Devrait se traduire par:. Value: %85.26.

J'ai besoin essentiellement pour WPF contraignant, mais tout d'abord résoudre la question générale de mise en forme:

<TextBlock Text="{Binding Percent, StringFormat=%%}" />
Était-ce utile?

La solution

Utilisez la chaîne Format P . Cela varie selon la culture:

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

Autres conseils

Si vous avez une bonne raison de mettre de côté la mise en forme en fonction de la culture et d'obtenir un contrôle explicite sur si oui ou non il y a un espace entre la valeur et le « % », et si le « % » est avant ou arrière, vous pouvez utiliser PercentPositivePattern et PercentNegativePattern propriétés.

Par exemple, pour obtenir une valeur décimale avec un « % » de fuite et pas d'espace entre la valeur et le « % »:

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

exemple plus complet:

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)

Si vous souhaitez utiliser un format qui permet de garder le numéro yo comme votre entrie ce travail de format pour moi: "# \\%"

Ce code peut vous aider à:

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

Je l'ai trouvé la réponse ci-dessus pour être la meilleure solution, mais je n'aime pas l'espace principal avant le signe pour cent. J'ai vu des solutions peu compliquées, mais j'utiliser ce Remplacer plus de la réponse ci-dessus au lieu d'utiliser d'autres solutions d'arrondi.

String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top