Отобразить строку формата, от процента до процента - PullRequest
1 голос
/ 22 февраля 2012

У меня есть несколько целочисленных значений (от 1 до 100), и я хочу использовать их в индикаторе выполнения, который имеет свойство DisplayFormatString.

Я также хочу иметь символ процента '%' в выходной строке.

Проблема в том, что при использовании символа он автоматически умножает мое значение на 100 и показывает мои значения как 3300%, когда я хотел их 33%.Как я могу преодолеть это?

DisplayFormatString="0%"

Ответы [ 6 ]

8 голосов
/ 22 февраля 2012

Попробуйте использовать 0'%' в качестве DisplayFormatString, (процент в одинарных кавычках), это должно помочь в достижении добавления знака процента к вашему номеру. Итак, вы получите 33%.

Еще одна вещь, которую вы можете попробовать, может быть, 0\\% (не уверен, сработает ли она или нет), но она должна работать в том же 33%, как вы хотите.

4 голосов
/ 22 февраля 2012

ProgressBar предполагает, что ваш ввод будет между 0 и 1. Когда вы установите DisplayFormatString на "P", это будет отображаться в процентах.

2 голосов
/ 14 июня 2016

У меня была похожая проблема при работе с аннотациями данных, я обнаружил, что она работает, когда я заключил 0 в фигурные скобки: DataFormatString = "{0}%"

2 голосов
/ 22 февраля 2012

Стандартные методы форматирования строк .NET будут умножаться на 100 при форматировании в процентах, как указано в документации .Похоже, вам придется разделить входные данные на 100 или изменить первоначальный расчет.

2 голосов
/ 22 февраля 2012

Проблема заключается в вашем представлении в процентах. Обычно процент - это десятичное число от 0 до 1, где 1 - 100%, а 0 - 0%. Поэтому, если вы хотите использовать стандарт string.Format, вам придется разделить вашу переменную на 100,0 (чтобы ваш int 33 стал десятичным 0,33). Как то так:

int progress = 33;
string.Format("{0:F}", progress / 100.0);

Если вы не хотите использовать это решение, вы можете зайти в раздел MSDN , чтобы найти формат, который соответствует вашим потребностям.

0 голосов
/ 22 февраля 2012

Как показывают здесь : попробуйте использовать DisplayFormatString="P"

...