【问题标题】:Convert from scientific notation string to float in C#在 C# 中从科学计数法字符串转换为浮点数
【发布时间】:2010-09-09 01:01:07
【问题描述】:

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

【问题讨论】:

    标签: c# floating-point scientific-notation


    【解决方案1】:

    也可以考虑使用

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

    这将确保MyFloat 设置为值 0,如果由于某种原因无法执行转换。或者您可以将Double.Parse() 示例包装在Try..Catch 块中,并在检测到异常时将MyFloat 设置为您选择的值。

    【讨论】:

    • 您不想依靠 MyFloat 为 0 来指示转换失败,您想依靠 bool 返回值。
    【解决方案2】:
    Double.Parse("1.234567E-06", System.Globalization.NumberStyles.Float);
    

    【讨论】:

    • 如果当前区域性的小数分隔符不是.,则将不起作用。因此,始终有效的方法是使用NumberStyles.Any 或(更好)强制InvariantCultureDouble.Parse("1.234567E-06", NumberStyles.Float, CultureInfo.InvariantCulture);
    • 请注意,如果您在此过程调用结束时添加 .ToString() ,它将返回科学记数法,而不是仅由数字组成的字符串。我需要在 .ToString() 调用中包含格式字符串参数(“0.0000”)以正确设置浮点格式。
    猜你喜欢
    • 2014-07-01
    • 1970-01-01
    • 2020-06-10
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    相关资源
    最近更新 更多