Asp.net mvc тип данных для денег?

public virtual decimal ProductPrice { get; set; }


Получеется, что в БД сохраняется с запятой, а на форме просит с точкой вводить из-за чего значение не сохраняется.


Как правильно организовать работу с «Деньгами» Какой тип данных должен быть и какие атрибуты?
  • Вопрос задан
  • 3705 просмотров
Пригласить эксперта
Ответы на вопрос 5

Можно хранить int в центах/копейках

Ответ написан
Комментировать
Soldata
@Soldata
Программист, владелец IT-компании.
Полтора года прошло! Но ответ дать хочется )) Когда с этой бедой столкнулся, то решение нашлось идеальное - к валидатору на форме добавил скрипт methods_ru.js. Много лет пользуюсь. Вот тут это нашел.
Ответ написан
Комментировать
@lavel
Если сервер БД и IIS находятся на разных серверах, то нужно проверить, чтобы совпадали установленные культуры по умолчанию, в русской культуре разделитель дробной части запятая, в en-US запятая отделяет разряда, а дробную часть разделяет точка. Возможно понадобится принудительно установить используемую культура в MVC приложении.
Ответ написан
Комментировать
@David_KoKos
используй decimal, какая там культура на серваке бд - это не важно,тебе главное в своем приложении получить с формы decimal корректный и все,а дальше просто положить его в базу,главное,чтобы типы совпадали.
Ответ написан
kakutuzov
@kakutuzov
посмотрите и почитайте про интерфейс IModelBinder
в нём распарсите и вытащите значение. В своё время один раз написал и больше не запариваюсь от того, как написал пользователь с точкой или запятой.

ЗЫ ой. я опоздал с ответом)) год прошёл.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы