如何在没有乘以100的情况下在FormatString中使用百分比%?

时间:2011-05-12 20:11:20

标签: c# format-string

我想将整数格式化为百分比,而不是乘以100,如here所示。因为我的源是一个int,所以先将它除以100不是一个有效的选项。这可能吗?

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

3 个答案:

答案 0 :(得分:57)

您可以转义%字符:

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

请注意,有两种方法可以使用\作为转义字符:如果您使用逐字符号(@)作为字符串文字的前缀,则\字符包含在string as-is,这意味着作为格式字符串的一部分,单个 \将用作转义字符。

如果没有@逐字符号,编译器会将\解释为转义字符串,因此需要将其自身转义为\\

选择一个或另一个,但不是两个:

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

答案 1 :(得分:32)

将%放在{0:..}

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

答案 2 :(得分:6)

来自您的链接页面:

\ 逃避角色

使下一个字符被解释为文字而不是自定义格式说明符。

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