我有一些整数值(1到100之间),我想在进度条中使用它们,它具有DisplayFormatString属性。
我还想在输出字符串中使用百分号'%'。
问题在于,通过使用符号,它会自动将我的值乘以100,当我想要它时,它会显示我的值3300%。我怎么能克服这个?
DisplayFormatString="0%"
答案 0 :(得分:8)
尝试使用0'%'
作为DisplayFormatString
(单引号中的百分比),这有助于实现将百分号附加到您的号码。所以你得到33%
。
你可以尝试的另一件事可能是0\\%
(不确定它是否会起作用)但是应该按照你想要的那样33%
。
答案 1 :(得分:4)
ProgressBar
假设您的输入介于0和1之间。当您将DisplayFormatString
设置为"P"
时,这将显示为百分比。
答案 2 :(得分:2)
问题在于您对百分比的表示。通常百分比是十进制0到1,其中1是100%,0是0%。因此,如果您想使用标准string.Format
,则必须将变量除以100.0(因此您的int 33变为小数0.33)。
像这样:
int progress = 33;
string.Format("{0:F}", progress / 100.0);
如果您不想使用该解决方案,可以查看MSDN section以找到适合您需求的格式。
答案 3 :(得分:2)
按照the documentation格式化为百分比时,标准.NET字符串格式化方法将乘以100。看起来你必须将你的输入除以100或改变它最初的计算方式。
答案 4 :(得分:2)
我在使用Data Annotations时遇到了类似的问题,当我用大括号括起0时,我发现它有效:DataFormatString = "{0}%"
答案 5 :(得分:0)
展示here:尝试使用DisplayFormatString="P"