如何使用货币符号将字符串解析为十进制?

我不知道为什么这不起作用:

string s = "12,00 €"; var germanCulture = CultureInfo.CreateSpecificCulture("de-DE"); decimal d; if (decimal.TryParse(s, NumberStyles.AllowCurrencySymbol, germanCulture, out d)) { // i want to get to this point Console.WriteLine("Decimal value: {0}", d); } 

使用NumberStyles.Currency而不是NumberStyles.AllowCurrencySymbol

 if (decimal.TryParse(s, NumberStyles.Currency, germanCulture, out d)) 

并且您的代码输出将是:

 Decimal value: 12.00 

试试这个;

  string.Format(new CultureInfo("en-SG", false), "{0:c0}", 123423.083234); 

它会将123423.083234转换为$ 1,23,423格式。