Si tiene una buena razón para dejar de lado el formato dependiente de la cultura y obtener un control explícito sobre si hay o no un espacio entre el valor y el "%", y si el "%" está al principio o al final, puede usar el PercentPositivePattern de NumberFormatInfo y Porcentaje Negativo Patrón propiedades.
Por ejemplo, para obtener un valor decimal con un "%" final y sin 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)
P
formato independiente de la cultura ?