2

我有一个由这段代码填充的列表视图:

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

我只想显示:

69675
 6078   

我不喜欢显示零和点。也许像这样

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

Blam我写了

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

并告诉我这个错误:'方法'测试'没有重载需要1个参数。

我已经添加

 using system.globalization; 

但仍然显示错误;

4

2 回答 2

0

当您number.ToString()处理双精度数或浮点数时,它默认为一定数量的小数位。

您可以通过向调用添加格式字符串参数来更改此设置,ToString如下所示:

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

F指的是定点格式,后面的数字是指在该点之后将显示多少位。F0点后没有数字的定点数也是如此,基本上是整数。

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

于 2013-07-04T14:33:22.420 回答
0

使用linq 到数据集(确保您的参考中有 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));
  }
}
于 2013-07-04T14:45:54.350 回答