2009-05-04 6 views
1

Я использую Javascript на frontend, C# как средний слой и Oracle 9i как DB.Каков наилучший слой для форматирования номеров валют?

Какова наилучшая практика при форматировании чисел с 2 десятичной точностью в валюте? И какие слои должны быть предпочтительными среди любого из этих трех слоев?

Принимая во внимание, что Пользователь сможет редактировать эти суммы на нескольких моих экранах в приложении.

+1

Возможно, вы уже знаете, но все валюты не используют 2 десятичных знака. Он варьируется от 0 до 3 (может быть, даже 4 - я не уверен). Например, японская иена не использует десятичных знаков. Когда мне приходилось хранить денежные данные в базе данных, я выбрал тип данных, который мог бы аккуратно хранить 4 десятичных знака. – waxwing

+0

Thx. Тогда я думаю, было бы также полезно хранить тип валюты в БД. Поэтому, если мы используем пару value/key (amount/symbol), мы можем преобразовать это, используя наши средние слои, или использовать обширный скриптинг на уровне презентации. – Obaid

ответ

1

Хранение вашего десятичного знака может быть более высокой, чем 2 цифры. Поскольку вы упоминаете, C# и Javascript, я могу предположить, что вы используете ASP.NET для своего интерфейса.

Отображение валюты должно обрабатываться в вашем коде ASP.NET, чтобы отобразить его на основе локали/культуры.

Для отображения сетки и других элементов управления отображением на C# вы можете использовать опцию форматирования строк: {0:c} для отображения валюты с правильным символом и двумя знаками после запятой.

2

Я бы сказал, сделайте это как можно ближе к пользователю, поскольку это практично. В любом случае, нет в базе данных, поскольку БД не будет знать о локали пользователя.

Обновление: Помните, что при форматировании валюты вы отображаете информацию пользователю, которая на самом деле правильная. Форматирование валюты не совпадает с конверсией валюты ...

0

Если вы хотите выполнить какие-либо математические операции над вашими данными, гораздо лучше сделать форматирование в Javascript и добавить символ валюты.

Смежные вопросы