我有一些整数值(1到100之间),我想在具有DisplayFormatString属性的进度条中使用它们。显示格式字符串,int到百分比
我也想在输出字符串中使用百分号'%'。
问题是,通过使用该符号,它会自动将我的值与100相乘,并且当我需要它们33%时,它会显示3300%的值。我该如何克服这一点?
DisplayFormatString="0%"
我有一些整数值(1到100之间),我想在具有DisplayFormatString属性的进度条中使用它们。显示格式字符串,int到百分比
我也想在输出字符串中使用百分号'%'。
问题是,通过使用该符号,它会自动将我的值与100相乘,并且当我需要它们33%时,它会显示3300%的值。我该如何克服这一点?
DisplayFormatString="0%"
尝试使用0'%'
作为DisplayFormatString
(单引号中的百分比),这应该有助于实现将百分号附加到您的号码。所以你得到33%
。你可以试试,也许
一件事是0\\%
(不知道是否会工作或没有),但应该制定出相同的33%
,你的愿望。
的ProgressBar
假定您的输入将是0和1之间。当你设置DisplayFormatString
到"P"
,这将显示为百分比。
问题在于您的百分比表示。通常百分比是从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找到适合您的需要的格式。
根据the documentation格式化百分比时,标准.NET字符串格式设置方法将乘以100。看起来你必须将你的输入除以100,或者改变最初的计算方式。
我有一个类似的问题与数据注释工作时,我发现它工作时,我在大括号包裹0:DataFormatString = "{0}%"
显示你的代码,我们将拭目以待。 – 2012-02-22 09:09:26
完成,更新了我的问题。 – 2012-02-22 09:10:48
输入来自外部来源。另外,我不用代码工作,而是用ASP。 – 2012-02-22 09:12:00