在 C 中从科学记数法字符串转换为浮点数#

Convert from scientific notation string to float in C#

提问人:odbasta 提问时间:9/16/2008 更新时间:11/11/2017 访问量:46273

问:

使用 C# 将科学记数法字符串(例如“1.234567E-06”)转换为浮点变量的正确方法是什么?

C# 浮点 科学记数法

评论


答:

62赞 user1228 9/16/2008 #1
Double.Parse("1.234567E-06", System.Globalization.NumberStyles.Float);

评论

19赞 Tim Schmelter 6/10/2013
如果当前区域性的小数点分隔符不是 ,则不起作用。因此,始终有效的方法是使用或(更好的)力:.NumberStyles.AnyInvariantCultureDouble.Parse("1.234567E-06", NumberStyles.Float, CultureInfo.InvariantCulture);
0赞 Eric Ness 1/11/2014
请注意,如果将 .ToString() 在此过程结束时调用它将返回科学记数法,而不是仅包含数字的字符串。我需要在 .ToString() 调用以正确设置浮点格式。
13赞 Jaymie Thomas 10/21/2008 #2

还可以考虑使用

Double.TryParse("1.234567E-06", System.Globalization.NumberStyles.Float, out MyFloat);

这将确保在由于任何原因无法执行转换时将其设置为值 0。或者,您可以将示例包装在一个块中,并在检测到异常时设置为您选择的值。MyFloatDouble.Parse()Try..CatchMyFloat

评论

22赞 Carl 10/21/2008
您不想依赖 MyFloat 为 0 来指示转换失败,您希望依赖 bool 返回值。