Ответ 1
Используйте NumberStyles.Currency
вместо NumberStyles.AllowCurrencySymbol
if (decimal.TryParse(s, NumberStyles.Currency, germanCulture, out d))
и вывод для вашего кода:
Decimal value: 12.00
Я не знаю, почему это не работает:
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.