Использование C # String.Format "{0: p0}" без начального пробела перед знаком процента - PullRequest
58 голосов
/ 03 июня 2011

Использование выражения

String.Format("{0:p0}",0.10) gives 10 %

Как получить это значение, чтобы вернуть 10% (без пробела между 10 и%)?

Культура: ru-RU

Ответы [ 8 ]

72 голосов
/ 03 июня 2011

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

28 голосов
/ 03 июня 2011

Используйте свойство NumberFormatInfo.PercentPositivePattern :

NumberFormatInfo numberInfo = new NumberFormatInfo();
numberInfo.PercentPositivePattern = 1;
Console.WriteLine(String.Format("{0}", 0.10.ToString("P0",numberInfo)));
8 голосов
/ 03 июня 2011

Если вы в порядке, если не используете Format(), вы можете сделать 0.10F.ToString("0%");.

5 голосов
/ 04 июня 2011

Только улучшая ответ @Jay Riggs, и поскольку у меня недостаточно репутации, чтобы комментировать, я бы сказал:

String.Format(numberInfo, "{0:p0}", 0.10);

Я думаю, что таким образом вы освещаете ситуации, когда вам нужно отформатировать более одного значения:

String.Format(numberInfo, "{0:p0} {1:p0}", 0.10, 0.20);
2 голосов
/ 15 апреля 2016
String.Format("{0:p0}",0.10).Replace(" ","");
1 голос
/ 26 июня 2015

Чтобы добавить к другим ответам, вот соответствующая документация:

0 голосов
/ 03 июня 2011

Изменение информации о культуре.

Для некоторых культур отображается% 10,% 10, 10%, 10%, .1, .10, 0.1, 0.10 ...

Iпроверим, какой CultureInfo дает вам «10%»

0 голосов
/ 03 июня 2011

Попробуйте вместо этого:

0.1.ToString ( "0%")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...