我尝试了几个例子/方法,没有预期的结果。
我存储在一个字符串
中// 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.TryParse(properPrice, NumberStyles.Any, CultureInfo.InvariantCulture, out floatPrice);
结果为 84900.0
。
有什么建议?
TX。
答案 0 :(得分:1)
当字符串的格式未使用当前区域性格式时,您只需在解析时指定区域性。因此,如果您的文化使用小数而不是逗号,则无需指定它。
如果您当前的文化使用小数,那么您需要在写出值时指定使用逗号的区域性。在下面的例子中,我选择了使用逗号的德国文化。
此外,看起来您正在处理货币,因此您应该使用十进制而不是浮点数。 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);
<强>更新强> 随着浮动:
string val = "EUR849.00";
float num = Single.Parse(val.Substring(3));
string expected = num.ToString("0.00", CultureInfo.GetCultureInfo("de-DE"));
Console.WriteLine(expected);