Я посмотрел на несколько вопросов по SO разборе валюты, лучший (рекомендуется) способ, кажется, один я пытаюсь ниже:Анализировать значение с символом валюты
var payout = decimal.Parse("$2.10", NumberStyles.Currency | NumberStyles.AllowDecimalPoint);
Однако, он бросает и исключение: Строка ввода не в правильном формате.
Я не знаю, что я делаю неправильно?
EDIT
Спасибо за ответы. Дополнительная информация: жестко закодированное значение валюты, которое я дал, было просто примером. У меня есть список валют:
€ 2,66
$ 2,10
$ 5,55
т.д.
Я не могу определить данные культуры заранее. Есть идеи?
Перемещение в другую страну (использующую $ в качестве символа валюты и '.' Как десятичный разделитель). В качестве альтернативы читайте «CultureInfo», поскольку это может быть дешевле. –
Строка валюты будет динамической, а не жесткой, как мой пример. Например. $ 2,10, € 2,66 и т. Д. Как я узнаю «Культурную информацию» заранее? – l3utterfly
Убежать ... Невозможно правильно проанализировать $ 3,100 без знания CultureInfo, используемого для форматирования значения. Проверка против списка всех символов валюты и наделение того, что вы правильно определили десятичный разделитель, - это самая безопасная ставка (я бы не рекомендовал эту ставку делать так). –