Float TryParse无法正常工作

我尝试了几个例子/方法,没有预期的结果。

我存储在一个字符串中

// Contains in my case "EUR849.00" so I want to get only the proper number. string properPrice = price[0].Substring(3); 

现在,我尝试将此字符串849.00解析为float,我希望此格式为849,00

我尝试了几个例子(特定的不变文化,替换float.Parse ,然后使用float.Parse解析,但它不起作用)。

我这样做的方式是:

 float.TryParse(properPrice, NumberStyles.Any, CultureInfo.InvariantCulture, out floatPrice); 

结果是84900.0 。 有什么建议? TX。

当字符串的格式未使用当前区域性的格式时,您只需在解析时指定区域性。 因此,如果您的文化使用小数而不是逗号,则无需指定它。

如果您当前的文化使用小数,那么您需要在写出值时指定使用逗号的区域性。 在下面的例子中,我选择了使用逗号的德国文化。

此外,看起来你正在处理货币,所以你应该小数而不是浮点数。 http://msdn.microsoft.com/en-us/library/364x0z75.aspx

 string val = "EUR849.00"; decimal num = Decimal.Parse(val.Substring(3)); string expected = num.ToString(CultureInfo.GetCultureInfo("de-DE")); Console.WriteLine(expected); 

UPDATE使用浮点数:

 string val = "EUR849.00"; float num = Single.Parse(val.Substring(3)); string expected = num.ToString("0.00", CultureInfo.GetCultureInfo("de-DE")); Console.WriteLine(expected);