Лучшие практики при работе с валютами - PullRequest
3 голосов
/ 17 августа 2011

Я работаю над настольным приложением, которое потенциально может быть развернуто по всему миру.Моя самая большая проблема с интернационализацией - это валюты.Пара вопросов:

Я использую SQL Server Compact Edition, который поддерживает тип MONEY.Мой первый вопрос: будет ли это обрабатывать хранение данных независимо от культуры пользователя?

Мой второй вопрос - обработка данных.Я знаю, что могу использовать строку формата "C", и я думаю, что все в порядке для отображения, но при сохранении обратно, как мне обрабатывать введенные пользователем значения?Есть ли стандартный способ проанализировать введенное значение и сохранить его в поле MONEY, но при этом нужно учитывать культуру и не нужно писать для каких-либо исключений?

Я работаю с C # вWPF, но я предполагаю, что, вероятно, существует почти универсальное решение для всего этого.

1 Ответ

5 голосов
/ 17 августа 2011

Тип MONEY просто говорит системе использовать требуемую точность и правила округления, необходимые для правильной обработки денежных расчетов.Он ничего не знает о реальной валюте.Вы должны справиться с этим в пользовательском интерфейсе и с правилами конвертации валют.

Каркас использует текущую культуру для отображения правильного символа валюты для форматов денежной строки, но если вы отображаете разные валюты, вам необходимо переопределитьэто поведение.

С C # / WPF (и Silverlight), если вы выводите валюту, используя StringFormat в XAML, она также обрабатывает пользовательский ввод (или, по крайней мере, по моему опыту).

...