代码之家  ›  专栏  ›  技术社区  ›  Phoexo

将字符串转换为float引发错误“格式不正确”

  •  2
  • Phoexo  · 技术社区  · 15 年前

    我无法让我的应用程序将字符串转换为浮点数:

    float number = float.Parse(match);
    

    其中匹配为“0.791794”。

    为什么这个不行?我得到的错误是“输入字符串的格式不正确。”,但我无法理解它有什么问题。

    3 回复  |  直到 12 年前
        1
  •  7
  •   technophile    15 年前

    尝试将区域性对象(即InvariantCulture,如果这是系统存储的数据且格式永远不会不同)传递给接受该对象的重载;您当前的区域性可能被设置为要求逗号作为分隔符而不是句点(或类似内容)。

    你也可以试试

    string x = (0.791794f).ToString()
    

    只是看看打印出来的是什么。

    检查CultureInfo.CurrentCulture也可能具有指导意义。

    (还有,健全性检查——我假设这些引号来自您,而不是字符串值本身的一部分?)

        2
  •  0
  •   Shawn Steward    15 年前

    你确定吗? match 是一个 string 类型?你可能需要打字。

        3
  •  0
  •   Dan Blair    15 年前

    在2008年似乎工作得很好

        static void Main(string[] args)
        {
            var match = "0.791794";
            float number = float.Parse(match);
            Console.Out.Write(number);
        }
    

    你可以试着重启vs. 希望有所帮助