我有一个由此代码填充的列表视图:
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;
但仍然显示错误;
答案 0 :(得分:0)
当您对双点或浮点数进行number.ToString()
时,它默认为一定的小数位数。
您可以通过向ToString
调用添加格式字符串参数来更改此设置,如下所示:
((double)row[4]).ToString("F0")
F
引用定点格式,后面的数字表示该点后显示的位数。所以F0
是一个固定的点数,在该点之后没有数字,基本上是一个整数。
更多信息:http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#FFormatString
答案 1 :(得分: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));
}
}