Pregunta

Lo que quiero es algo como esto:

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

Cuando %% es que el proveedor de formato o cualquier cosa que yo estoy buscando. Debe dar lugar a:. Value: %85.26.

Yo, básicamente, lo necesito para WPF vinculante, pero primero vamos a resolver el problema de formato en general:

<TextBlock Text="{Binding Percent, StringFormat=%%}" />
¿Fue útil?

Solución

Utilice el P formato de cadena . Esto variará por cultivo:

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

Otros consejos

Si usted tiene una buena razón para dejar de lado el formato dependiente de la cultura y obtener el control explícito sobre si hay o no hay un espacio entre el valor y el "%", y si el "%" es principio o al final, puede utilizar NumberFormatInfo es PercentPositivePattern y PercentNegativePattern propiedades.

Por ejemplo, para obtener un valor decimal con un trailing "%" y no hay espacio entre el valor y el "%":

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

ejemplo más 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)

Si desea utilizar un formato que permite mantener el número de años igual que su entrie este trabajo para mí formato: "# \\%"

Este código puede ayudarle a:

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

he encontrado la respuesta anterior a ser la mejor solución, pero eso no me gusta el espacio inicial antes de que el signo de porcentaje. He visto soluciones algo complicado, pero acabo de utilizar este Reemplazar Además de la respuesta anterior en lugar de utilizar otras soluciones de redondeo.

String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top