Если у вас есть веская причина отложить форматирование, зависящее от культуры, и получить явный контроль над наличием пробела между значением и «%», а также с тем, является ли «%» лидирующим или конечным, вы можете использовать PercentPositivePattern для NumberFormatInfo и Свойства PercentNegativePattern .
Например, чтобы получить десятичное значение с конечным «%» и без пробела между значением и «%»:
myValue.ToString("P2", new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 });
Более полный пример:
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
форматирование?