How can I use a percent % in FormatString without it multiplying by 100?

半城伤御伤魂 提交于 2019-11-30 06:26:25

问题


I would like to format an integer as a percent without it multiplying by 100 as shown here. Because my source is an int, dividing it first by 100 is not a valid option. Is this possible?

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

回答1:


You can escape the % character:

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

Note that there are two ways to use \ as an escape character: if you prefix a string literal with the verbatim symbol (@), then \ characters are included in the string as-is, which means that as part of a format string a single \ will function as an escape character.

Without the @ verbatim symbol, \s are interpreted as escape strings by the compiler and as such need to be escaped themselves, as \\.

Pick one or the other, but not both:

@"{0:#\%}"  -> right
"{0:#\\%}"  -> right
@"{0:#\\%}" -> wrong



回答2:


Put the % outside the {0:..}

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



回答3:


From your linked page:

\ Escape character

Causes the next character to be interpreted as a literal rather than as a custom format specifier.

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


来源:https://stackoverflow.com/questions/5983868/how-can-i-use-a-percent-in-formatstring-without-it-multiplying-by-100

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!