2012-02-22 115 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}%"