Как я могу использовать процент% в FormatString без его умножения на 100?
Я хотел бы отформатировать целое число как процент без его умножения на 100, как показано здесь. Поскольку мой источник является int, деление его на 100 - это не допустимый вариант. Возможно ли это?
[DisplayFormat(DataFormatString = "{0:#%}")]
Ответ 1
Вы можете избежать символа %:
[DisplayFormat(DataFormatString = @"{0:#\%}")]
Обратите внимание, что в качестве escape-символа существует два способа использования \: если вы префикс строкового литерала с символом verbatim (@), то символы \ включены в строку as-is, что означает, что в качестве части строки формата одиночный\ будет функционировать как escape-символ.
Без символа @ verbatim \ интерпретируются как escape-строки компилятором и как таковые должны быть экранированы сами, как \\.
Выберите один или другой, но не оба:
@"{0:#\%}" -> right
"{0:#\\%}" -> right
@"{0:#\\%}" -> wrong
Ответ 2
Поместите% вне {0:..}
[DisplayFormat(DataFormatString = "{0:0.00}%")]
Ответ 3
На вашей связанной странице:
\
Символ побега
Заставляет следующий символ интерпретироваться как литерал, а не как спецификатор специального формата.