【发布时间】:2011-08-24 10:35:35
【问题描述】:
我想将整数格式化为百分比,而不用乘以 100,如 here 所示。因为我的源是一个 int,所以将它除以 100 不是一个有效的选项。这可能吗?
[DisplayFormat(DataFormatString = "{0:#%}")]
【问题讨论】:
标签: c# format-string
我想将整数格式化为百分比,而不用乘以 100,如 here 所示。因为我的源是一个 int,所以将它除以 100 不是一个有效的选项。这可能吗?
[DisplayFormat(DataFormatString = "{0:#%}")]
【问题讨论】:
标签: c# format-string
您可以转义% 字符:
[DisplayFormat(DataFormatString = @"{0:#\%}")]
请注意,有两种方法可以将\ 用作转义字符:如果您在字符串文字前加上逐字符号(@),那么\ 字符会按原样包含在字符串中,即表示作为格式字符串的一部分,单个 \ 将用作转义字符。
没有@ 逐字符号,\s 被编译器解释为转义字符串,因此需要自行转义,如\\。
选择其中之一,但不能同时选择:
@"{0:#\%}" -> right
"{0:#\\%}" -> right
@"{0:#\\%}" -> wrong
【讨论】:
[DisplayFormat(DataFormatString = @"{0:#0.##\%}")]解决了我自己
将 % 放在 {0:..} 之外
[DisplayFormat(DataFormatString = "{0:0.00}%")]
【讨论】:
ToString() 这样的方法将不允许{ } 表达式,而是您只能在上述解决方案中提供{0: 和} 之间的格式部分。不过像String.Format() 这样的方法是可以的。
从您的链接页面:
\ 转义字符
导致下一个字符被解释为文字而不是自定义格式说明符。
[DisplayFormat(DataFormatString = "{0:#\\%}")]
【讨论】: