日期:2014-05-18  浏览次数:20871 次

【求助】string转double异常,提示未处理的format异常
我想将一个txt文件中的数据读入内存中,可是运行的时候在
r["X"] = double.Parse(numbers[2]);
处提示异常啊,提示输入字符串的格式不正确。
这是什么情况啊,怎么解决啊?向高手请教
代码如下:

public GetDataClass() : base()
  {
  m_table = new DataTable("members");  

  m_table.Columns.Add("ID", typeof(string)); ID
  m_table.Columns.Add("ItemName", typeof(string)); 
  m_table.Columns.Add("X", typeof(double)); // X坐标  
  m_table.Columns.Add("Y", typeof(double)); // Y坐标
  m_table.Columns.Add("ItemSate", typeof(string)); 
  }
 
  /// <summary>
  /// 将txt读入内存
  /// </summary>
  /// <param name="filePathName"></param>
  public DataTable ReadTxtToMem(string filePathName)
  {
  string str;

  StreamReader streamreader = new StreamReader(filePathName);
   
  while ((str = streamreader.ReadLine()) != null)
  {
  DataRow r = m_table.NewRow();
  string[] numbers = str.Split(new char[] { ',' });
   
  r["ID"] = numbers[0];  
  r["ItemName"] = numbers[1];
  r["X"] = double.Parse(numbers[2]);
  r["Y"] = double.Parse(numbers[3]);  
  r["ItemSate"] = numbers[4];

  m_table.Rows.Add(r);
  }

  streamreader.Close();
  return m_table;

  }


------解决方案--------------------
string[] numbers = str.Split(new char[] { ',' });
你在这句加个断点不就知道numbers里面是什么了 看看第三个数numbers[2]是什么值
------解决方案--------------------
设置断点到:r["X"] = double.Parse(numbers[2]);
F5运行到这里时,把numbers[2]拖到监视窗口,看看值是什么。。。。