显示格式字符串,int为百分比

时间:2012-02-22 09:08:15

标签: c# .net devexpress string-formatting

我有一些整数值(1到100之间),我想在进度条中使用它们,它具有DisplayFormatString属性。

我还想在输出字符串中使用百分号'%'。

问题在于,通过使用符号,它会自动将我的值乘以100,当我想要它时,它会显示我的值3300%。我怎么能克服这个?

DisplayFormatString="0%"

6 个答案:

答案 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"