2011-06-15 204 views
3

我從數據庫中獲取以下值:如何格式化數據

99,12,12.2222,54.98,56,17.556

現在我想表明的值象下面這樣: 99%,12 %,12.22%,54.98%,56%,17.55%

請給我任何建議來實現這一點。

+1

什麼是返回值的類型? – 2011-06-15 06:21:12

+0

你也可以將字符串直接連接到查詢。 – 2011-06-15 07:07:04

回答

4

它在C#中非常容易:

[編輯]

var val = 99.569; 
string result = string.Format("{0:0.##}%", val); 

你可以看看爲Format方法String類的:
http://msdn.microsoft.com/en-us/library/fht0f5be.aspx

而且我建議你看看自定義格式字符串:
http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

+0

val.ToString(「0.00」) – Archibald 2011-06-15 06:21:38

+0

@Archibald:是的,你說得對。但在這種情況下,我們應該使用'##'而不是'00'。 – 2011-06-15 06:24:47

+0

@Anton:OP也詢問99的值應該是99%,但如果他在這種情況下實現你的方式99將99.00% – Vijjendra 2011-06-15 06:26:50

2

使用帶字符串格式的ToString方法 - 您想要的格式是「P2」或自定義格式#0。##%。這兩個格式選項都乘以100,期望您的數據處於標準百分比格式,因此您需要劃分爲accomadate並使用它。


要使用不帶分隔符的ToString,可以使用「#0。## \%」來格式化數字部分,並將百分號作爲一個升數包含,這是ToString的equivilent,與Anton Semenov的答案中的格式一樣此線程上的string.Format函數。

Msdn article - Standard Formats
Msdn article - Custom Formats

+1

請記住,「P」格式字符串乘以100! – 2011-06-15 06:47:00

+0

我已經忘記了,但正在進行上述修訂。謝謝。 – BellBat 2011-06-15 06:55:45

0

如果要指定小數數2(即不12.2222%,但12.22%),然後使用:

val.ToString("0.00") + "%" 

注意,這會將數字捨棄,因此12.226會顯示爲12.23%等。

1

tomart 12.2222使用f

string.Format("{0:f}%", 12.2222); //output 12,22% 
1

嘗試了這一點

 List<double> myList = new List<double>(); 
     myList.Add(0.1234); 
     myList.Add(99); 
     myList.Add(12.1234); 
     myList.Add(54.98); 
     foreach (double d in myList) 
     { 
      string First = string.Format("{0:0.00%}", d); //Multiply value by 100 
      Console.WriteLine(First);      
      string Second = string.Format("{0:P}", d);//Multiply value by 100 
      Console.WriteLine(Second); 
      string Third = string.Format("{0:P}%", d.ToString());//Use this One 
      Console.WriteLine(Third); 
      string Four = d.ToString() + "%"; //Not a good idea but works 
      Console.WriteLine(Four); 
      Console.WriteLine("====================="); 
     } 

     Console.ReadLine(); 

我已經在這裏一個小竅門{0:P}將乘以100的給定值,然後顯示它,但你只是想放置值後%符號所以首先將給定的值轉換爲TOString,而不是應用{0:p}