Ответ 1
Двойные столбцы не совпадают с столбцами DECIMAL, а вы попадете в проблему, если для финансовых данных используются столбцы DOUBLE.
DOUBLE на самом деле представляет собой двойную (64-битную, а не 32-разрядную) версию FLOAT. Числа с плавающей запятой являются приблизительными представлениями действительных чисел, и они не являются точными. Фактически, простые числа, такие как 0.01, не имеют точного представления в типах FLOAT или DOUBLE.
Столбцы DECIMAL являются точными представлениями, но они занимают намного больше места для гораздо меньшего диапазона возможных чисел. Чтобы создать столбец, способный удерживать значения от 0,0001 до 99,9999, как вы просили, вам понадобится следующая инструкция
CREATE TABLE your_table
(
your_column DECIMAL(6,4) NOT NULL
);
Определение столбца следует за форматом DECIMAL (M, D), где M - максимальное количество цифр (точность), а D - количество цифр справа от десятичной точки (шкала).
Это означает, что предыдущая команда создает столбец, который принимает значения от -99.9999 до 99.9999. Вы также можете создать колонку UNSIGNED DECIMAL, начиная от 0,0000 до 99,9999.
Для получения дополнительной информации о MySQL DECIMAL официальные документы всегда являются отличным ресурсом.
Имейте в виду, что вся эта информация верна для версий MySQL 5.0.3 и выше. Если вы используете предыдущие версии, вам действительно нужно обновить.