.NET: Парсинг локализованной валюты

Скажем, у меня есть a string, и это stringзначение является суммой денег, локализованной. Локализованным я подразумеваю это, если страна может использовать запятые вместо десятичных точек, например. (Это - всего одно различие в локализации, которое я знаю если.)

Как я могу проанализировать один из них strings в их decimals числовые эквиваленты? Будет decimal.TryParse() распознать локализованное форматирование? Как я указываю CultureInfo с TryParse()?

6
задан JamesBrownIsDead 21 January 2010 в 07:56
поделиться

2 ответа

Вот пример penimal.triparse с указанным CultureInfo (шведский в этом случае):

string s = "10,95";
decimal d;
if (decimal.TryParse(s, NumberStyles.Number, CultureInfo.GetCultureInfo("sv-SE"),out d))
{
    Console.WriteLine(d);
} 
7
ответ дан 17 December 2019 в 00:09
поделиться

DECIMAL.Triparse поставляется с 2 перегрузками. Один из них принимает информацию о культуре в качестве аргумента (The CulttyInfo IformatProvider):

System.Decimal.TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out decimal result)

Другой берет на гораздо меньше аргументов и использует системы CultureInfo:

System.Decimal.TryParse(string s, out decimal result)

Я не уверен, но я думаю, что вы могли бы установить текущий Системная культура посредством:

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sv-SE");
0
ответ дан 17 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: