C# 如何在没有货币格式的情况下将字符串解析为浮点?
所以我把一个浮点数转换成一个字符串,它被格式化为一种货币C# 如何在没有货币格式的情况下将字符串解析为浮点?,c#,string,C#,String,所以我把一个浮点数转换成一个字符串,它被格式化为一种货币 float f = 2.99F; string s = f.ToString("c2"); //s = 2.99 € 但当我想把它转换回浮点数时,这是不可能的,因为浮点数不能存储欧元符号。那么,有没有办法将字符串转换回浮点数,但它忽略了“€”(带空格)?这应该可以: float f = 2.99F; string s = f.ToString("c2"); var number = float.Parse(s, NumberStyles
float f = 2.99F;
string s = f.ToString("c2");
//s = 2.99 €
但当我想把它转换回浮点数时,这是不可能的,因为浮点数不能存储欧元符号。那么,有没有办法将字符串转换回浮点数,但它忽略了“€”(带空格)?这应该可以:
float f = 2.99F;
string s = f.ToString("c2");
var number = float.Parse(s, NumberStyles.AllowCurrencySymbol
| NumberStyles.Currency);
这似乎不起作用:
float f=2.99F;float.Parse(f.ToString(“c2”)、NumberStyles.AllowCurrencySymbol)
@Magnus似乎指定了数字样式。货币
是必要的。现在它可以工作了。如果你在处理货币,你确定你想要的是浮动
而不是十进制
?(这回答了这个问题很好,但是对于任何未来的读者…请考虑这一点)你所做的是非常危险的;财务计算通常保留固定的小数位数,这不是float
计算的工作方式;您可能应该使用十进制
来表示货币金额。此外,ToString(“c2”)
使用机器定位;用户可以更改本地化,使您的“2.99欧元”变成“2.99英镑”或“2.99美元”。这就是你想要的吗?