Как я могу использовать процент% в FormatString без умножения на 100? - PullRequest
40 голосов
/ 13 мая 2011

Я бы хотел отформатировать целое число в процентах без умножения на 100, как показано здесь . Поскольку мой источник - int, деление его сначала на 100 недопустимо. Это возможно?

[DisplayFormat(DataFormatString = "{0:#%}")]

Ответы [ 3 ]

57 голосов
/ 13 мая 2011

Вы можете экранировать символ %:

[DisplayFormat(DataFormatString = @"{0:#\%}")]

Обратите внимание, что есть два способа использования \ в качестве экранирующего символа: если вы префиксом строкового литерала дословно обозначаете символ(@), затем \ символы включаются в строку как есть, что означает, что как часть строки формата single \ будет функционировать как escape-символ.

Без дословного символа @ \ s интерпретируются компилятором как escape-строки *1016* и, как таковые, должны быть экранированы сами, как \\.

Pickодин или другой, но не оба:

@"{0:#\%}"  -> right
"{0:#\\%}"  -> right
@"{0:#\\%}" -> wrong
32 голосов
/ 28 ноября 2012

Поместите% за пределы {0: ..}

[DisplayFormat(DataFormatString = "{0:0.00}%")]
6 голосов
/ 13 мая 2011

С вашей связанной страницы:

\ Escape персонаж

Заставляет следующий символ интерпретироваться как литерал, а не как спецификатор пользовательского формата.

[DisplayFormat(DataFormatString = "{0:#\\%}")]
...