我将一个浮点数转换为货币格式的字符串。
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);
- MagnusNumberStyles.Currency
是必要的,现在它可以工作了。 - Selman Gençfloat
而不是decimal
吗?(这个回答很好,但是对于未来的读者...请考虑一下这个建议) - Joe
float
计算的方式;你可能应该使用decimal
来表示货币金额。此外,ToString("c2")
使用机器本地化;用户可以更改本地化设置,因此你的 "€2.99" 可能会变成 "£2.99" 或 "$2.99"。这符合你的意愿吗? - Dour High Arch