11.1.4 Типы чисел с плавающей запятой (приблизительное значение) - FLOAT, DOUBLE
Типы FLOAT и DOUBLE представляют приблизительные числовые значения. MySQL использует четыре байта для значений одинарной точности и восемь байтов для значений двойной точности.
Для FLOAT, стандарт SQL допускает необязательное указание точности (но не диапазона порядка) в битах после ключевого слова FLOAT в скобках, то есть FLOAT(. MySQL также поддерживает это необязательное указание точности, но значение точности в p)FLOAT( используется только для определения размера хранения. Точность от 0 до 23 приводит к столбцу одинарной точности p)FLOAT размером в 4 байта. Точность от 24 до 53 приводит к столбцу двойной точности DOUBLE размером в 8 байт.
MySQL допускает нестандартный синтаксис: FLOAT( или M,D)REAL( или M,D)DOUBLE
PRECISION(. Здесь M,D)( означает, что значения могут храниться с максимальным количеством M,D)M цифр в целом, из которых D цифр могут быть после десятичной точки. Например, столбец, определённый как FLOAT(7,4), отображается как -999.9999. MySQL выполняет округление при хранении значений, поэтому, если вы вставите 999.00009 в столбец FLOAT(7,4), приблизительный результат будет 999.0001.
Поскольку значения с плавающей запятой являются приблизительными и не хранятся как точные значения, попытки рассматривать их как точные в сравнениях могут привести к проблемам. Они также зависят от платформы или реализации. Более подробную информацию см. в разделе B.3.4.8, «Проблемы со значениями чисел с плавающей запятой».
Для максимальной переносимости код, требующий хранения приблизительных числовых значений, должен использовать FLOAT или DOUBLE PRECISION без указания точности или количества цифр.
© 2025 Oracle
Licensed under the GPLv2 License.