Я должен сохранить поле PRICE как интервал или как интервал плавающий база данных?

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

Действительно ли это - хорошая практика, которой я должен применить, или действительно ли это является ненужным и только делает данные менее прозрачными?

11
задан Mark Basmayor 29 January 2010 в 10:42
поделиться

4 ответа

Интересный вопрос.

Я бы не выбрал бы поплавок в среде MySQL. Слишком много проблем в прошлом с точностью с этим типом данных.

Для меня выбор будет между INT и десятичным (18,4) .

Я видел, что реальные примеры мира целые числа используются для представления ценностей плавающих точек. Внутренние вторых данных JD Edwards все это делают. Количество обычно делятся на 10000. Хотя я уверен, что это быстрее и меньший в таблице, он просто означает, что мы всегда должны бросать INT в десятичном значении, если мы хотим что-то делать с ними, особенно подразделение.

От перспективы программирования, я всегда предпочитал работать с десятичным для цен (или денег в RDBMS, которые его поддерживают).

14
ответ дан 3 December 2019 в 07:12
поделиться

Несмотря на то, что это спасет вас от проблем, связанных с плаванием, сохранение цен в виде целых чисел может привести к проблеме, когда вы в конечном итоге взимаете 100-кратную цену с клиента. Это также может запутать других программистов.

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

-121--2964799-

Я думаю, что Десятичная подходит для этого использования.

-121--2964798-

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

2
ответ дан 3 December 2019 в 07:12
поделиться

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

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

0
ответ дан 3 December 2019 в 07:12
поделиться

Я думаю, что Десятичная хорошо подходит для такого использования.

1
ответ дан 3 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

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