C# 将字符串转换为浮点将抛出错误“;“格式不正确”;

C# 将字符串转换为浮点将抛出错误“;“格式不正确”;,c#,string,floating-point,C#,String,Floating Point,我无法让我的应用程序将字符串转换为浮点: float number = float.Parse(match); 其中匹配项为“0.791794” 为什么这样不行?我得到的错误是“输入字符串的格式不正确”。但我无法理解它有什么问题。您确定匹配是字符串类型吗?您可能需要对其进行类型转换。尝试将区域性对象(即不变量区域性,如果这是系统存储的数据,且格式不会有任何不同)传递给接受该对象的重载;您当前的区域性可能设置为需要逗号作为分隔符,而不是句号(或类似字符) 你也可以试试 string x = (0

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

float number = float.Parse(match);
其中匹配项为“0.791794”


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

您确定
匹配
字符串类型吗?您可能需要对其进行类型转换。

尝试将区域性对象(即不变量区域性,如果这是系统存储的数据,且格式不会有任何不同)传递给接受该对象的重载;您当前的区域性可能设置为需要逗号作为分隔符,而不是句号(或类似字符)

你也可以试试

string x = (0.791794f).ToString()
只是看看打印出来的是什么

检查CultureInfo.CurrentCulture可能也会有帮助


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

在2008年似乎工作正常

    static void Main(string[] args)
    {
        var match = "0.791794";
        float number = float.Parse(match);
        Console.Out.Write(number);
    }
你可以尝试重新启动vs。
希望有助于

匹配
的是一个
字符串
,是的。我有
string match=someOtherString+1我还没有遇到这个问题,我不知道为什么我没有给出我们运行的文档数量。但这确实是一个很好的观点。嘎,愚蠢的挪威数字系统,我们使用
作为小数分隔符,因此它不能与
匹配中的
一起工作。是的。无效格式表示它与当前UI区域性所期望的规则不匹配,对于数字,通常表示逗号与句点输入法。;)无论何时调用,ToString、String、Frand或.PARSE都应该通过某种CultIntIngor对象,只是为了明确它的可能性是什么(并且让您考虑不同的文化规则)。我认为您的意思是引用<代码> CurrultCuleult/Cuth>属性,而不是<代码> CurrutuuloStudio。code>CurrentUICulture
与资源管理器加载资源(如资源文件中的字符串)的方式有关
CurrentCulture
影响日期和数字格式。你说得对,我说了。我总是把那两个倒过来。答案已修改,谢谢。:)