2012-02-22 114 views
1

我有一些整数值(1到100之间),我想在具有DisplayFormatString属性的进度条中使用它们。显示格式字符串,int到百分比

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

问题是,通过使用该符号,它会自动将我的值与100相乘,并且当我需要它们33%时,它会显示3300%的值。我该如何克服这一点?

DisplayFormatString="0%" 
+0

显示你的代码,我们将拭目以待。 – 2012-02-22 09:09:26

+0

完成,更新了我的问题。 – 2012-02-22 09:10:48

+0

输入来自外部来源。另外,我不用代码工作,而是用ASP。 – 2012-02-22 09:12:00

回答

8

尝试使用0'%'作为DisplayFormatString(单引号中的百分比),这应该有助于实现将百分号附加到您的号码。所以你得到33%。你可以试试,也许

一件事是0\\%(不知道是否会工作或没有),但应该制定出相同的33%,你的愿望。

0

由于显示here:尝试使用DisplayFormatString="P"

+0

不起作用。输出'3.300,00%' – 2012-02-22 09:21:23

+0

你不需要乘以你的价值,控制为你做。 – AngeloBad 2012-02-22 09:22:50

+0

p和P都显示百分比。一个显示原样,另一个显示乘数(现在不能记住哪个方向) – Kuffs 2012-02-22 09:54:27

4

ProgressBar假定您的输入将是0和1之间。当你设置DisplayFormatString"P",这将显示为百分比。

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找到适合您的需要的格式。

2

根据the documentation格式化百分比时,标准.NET字符串格式设置方法将乘以100。看起来你必须将你的输入除以100,或者改变最初的计算方式。

2

我有一个类似的问题与数据注释工作时,我发现它工作时,我在大括号包裹0:DataFormatString = "{0}%"