如何parsing来自数据表的C#中的这些数据

我有以下C#代码从数据表中读取数据(这是从Excel电子表格中创build的)

private byte GetVal(DataRow dataRow, string caption) { var val = dataRow.GetValue(caption).ToString().Trim(); if (!String.IsNullOrEmpty(val)) { return (byte)(Decimal.Parse(val) * 100); } return (byte)0; } 

这是因为存在以下值:“5.5555555555555552E-2”从其中一个单元格读取(valvariables)

它炸毁了这条线:

  return (byte)(Decimal.Parse(val) * 100); 

与错误: inputstring不正确的格式。

什么是最好的方法来解决这个问题,我可以读取的价值?

尝试这个:

 return (byte)(Decimal.Parse(val, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture)); 

Decimal.Parse Method (String, NumberStyles, IFormatProvider)

NumberStyles.AllowExponentAllowExponentNumberStyles.Float的子集)

表示数字string可以是指数表示法。 AllowExponent标志允许parsing的string包含一个以“E”或“e”字符开头的指数,后面跟随一个可选的正号或负号以及一个整数。 换句话说,它成功地parsing了nnnExx,nnnE + xx和nnnE-xxforms的string。 它不允许小数点分隔符或login有效数或尾数; 允许parsingstring中的这些元素,使用AllowDecimalPoint和AllowLeadingSign标志,或者使用包含这些单独标志的组合样式。

 return (byte)(Decimal.Parse(val, NumberStyles.AllowExponent) * 100);