数据表自动转换“0.000095”到“9.5E-05”

时间:2014-06-06 08:15:08

标签: c# excel datatable ado.net

我从excel表填充我的数据集,其中包含类似这样的数据" 0.000095"。数据集返回的数据表具有string类型的所有列。但由于某些原因,我想要excel表中的确切数据而不是自动将其转换为" 9.5E-05"。

  string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
  OleDbDataAdapter adapter;
  DataSet ds = new DataSet();
  adapter = new OleDbDataAdapter("Select * from [Sheet1$]", connstring);
  adapter.Fill(ds);

2 个答案:

答案 0 :(得分:1)

  

我想要excel表格中的确切数据,而不是将其自动转换为“9.5E-05”。

那是确切的数据。在学校错过了数学?

你想要的是相同的REPRESENTATION(作为一个字符串)。

Hanle在UI中。 C#中的数字没有格式 - 它们是一个值,而VALUE是相同的。要使用相同的格式,请在UI中处理相同的格式。

如果你问问调试员 - 没办法。调试器使用标准格式显示值。

答案 1 :(得分:0)

从指数格式转换回十进制格式

Decimal.Parse("9.5E-05”, System.Globalization.NumberStyles.Float)