Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有货币格式的情况下将字符串解析为浮点?_C#_String - Fatal编程技术网

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美元”。这就是你想要的吗?