c#抛出异常输入字符串中的转换错误格式无效
我在将字符串转换为十进制时遇到问题。我的C#代码正在从exel文件读取以下数据,并向我抛出以下错误c#抛出异常输入字符串中的转换错误格式无效,c#,C#,我在将字符串转换为十进制时遇到问题。我的C#代码正在从exel文件读取以下数据,并向我抛出以下错误 decimal d = 0; Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d); TestModel.lat = d; 输入字符串的格式不正确“-1.799999999999E-2” decimal d = 0; Decimal
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;
输入字符串的格式不正确“-1.799999999999E-2”
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;
我在excel值中看不到此值
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;
示例数据
-1.70152
9.335628333
-150.0145233
39.159625
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;
c#代码
TestModel.lat = Convert.ToDecimal(c.CellValue.Text);
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;
我的转换正确吗。我在转换过程中丢失了所有值。为了保持原始值不变,最好的数据类型是什么?您的方法必须是:
TestModel.lat = Decimal.Parse(c.CellValue.Text, NumberStyles.Float);
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;
最好使用Decimal.TryParse
,并指定InvariantCulture
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;
1) 打开你的excel
2) 单击具有此值的任何单元格
3) 右键单击单元格->设置单元格格式->选择常规,然后单击确定。它将显示原始值。对所有单元格进行更改。
4) 现在尝试使用ur代码阅读此文件注意,当您包含示例数据时,它有助于包含一个将失败的示例…@jamice在本例中是这样的。我在Linqpad中运行代码。AllowExponent抛出。浮动works@Jamec您的评论不希望文化是不变的,请尝试TryParse variant。
decimal d = 0;
Decimal.TryParse("1.2345E-02", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture, out d);
TestModel.lat = d;