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);