如何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.AllowExponent ( AllowExponent
是NumberStyles.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);