2013-07-04 26 views
1

我具有由這個碼填充的列表視圖:格式列表視圖柱爲int

if (popula.Rows.Count > 0) 
{ 
    foreach (DataRow row in popula.Rows) 
    { 
     listView1.Items.Add(row[0].ToString()); 
     listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[1].ToString()); 
     listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[2].ToString()); 
     listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[3].ToString()); 
     listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[4].ToString()); 
    } 

第一列是數字與此格式:

Code 
------------- 
    69675.0000 
    6078.0000 
    57536.0000 
    37625.0000 
    54079.0000 
    57933.0000 
    51968.0000 
    59160.0000 
    25392.0000 

我想O僅顯示:

69675 
6078 

我不喜歡顯示零和點。也許sonthing這樣

listView1.Items[listView1.Items.Count - 1].SubItems.Add.format ((row[4].ToString())); 

布拉姆我已經寫

listView1.Items.Add(row[0].ToString("F0")); 

,並告訴我這個錯誤:「不超載的方法‘測試’取1級的說法。

我有加

using system.globalization; 

但還是告訴我的錯誤;

回答

0

當你在雙精度或浮點數上做number.ToString()時,它默認爲一定的小數位數。

您可以通過添加格式字符串參數來ToString呼叫這樣修改的:

((double)row[4]).ToString("F0") 

F reffers到定點格式,而且數量是指它有多少個數字後顯示後重點。所以F0是一個定點數,在點後面沒有數字,基本上是一個整數。

更多信息:http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#FFormatString

+0

上有沒有對象的ToString重載發生在參數字符串,有一但雙。 –

+0

如果您將單元格取消爲第一個雙元素,就像我更新的答案一樣,該怎麼辦? – Blam

+0

然後它會工作 –

0

使用linq to dataset(讓河畔你有你的引用System.Data.DataSetExtensions):

const string format = "D"; 
Func<DataRow, int, string> formatter = 
    (DataRow row, int index) => row.Field<double>(index).ToString(format); 

foreach (DataRow row in popula.AsEnumerable()) 
{ 
    var item = listView1.Items.Add(formatter(row, 0)); 

    for (int i = 1; i <= 4; i++) 
    { 
    item.SubItems.Add(formatter(row, i)); 
    } 
}