【问题标题】:Convert 7.346000E-001 or 7.3460000E+000 to Double将 7.346000E-001 或 7.3460000E+000 转换为 Double
【发布时间】:2012-08-07 12:20:04
【问题描述】:

我正在尝试将字符串值转换为 Double,但我收到错误消息,提示格式不正确。

我的字符串表示如下:7.346000E-001, 7.3460000E+000

是否有其他方法可以转换它们或者我需要将字符串截断为两部分并自己进行计算以获得真正的价值?

【问题讨论】:

  • 你是如何进行转换的? Convert.ToDouble("7.3460000E-001") 为我工作,你确定你没有使用文化特定的解析吗?
  • 你应该可以一步转换,你用的什么代码?
  • 我正在使用 Double.Parse("7.346000E-001")
  • @Wassim 那么CultureInfo.CurrentCulture 的价值是什么?
  • Convert.ToDouble("7.3460000E-001",CultureInfo.InvariantCulture) 如果您在文化中使用 , 作为小数点分隔符会有所帮助

标签: c# visual-studio-2010 double type-conversion exponential


【解决方案1】:

试试CultureInfo.InvariantCulturedouble.parse

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); // just to simulate french culture
double d = double.Parse("7.3460000E-001",CultureInfo.InvariantCulture);
Console.Write(d);

【讨论】:

    【解决方案2】:

    法国文化(我从您的个人资料中推测)使用逗号而不是点作为小数分隔符。

    此处描述的解决方案:C# float.tryparse for French Culture

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 2023-04-01
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多