Spec-Zone.ru › MySQL 5.7

11.1.4 Типы чисел с плавающей запятой (приблизительное значение) - FLOAT, DOUBLE

Типы FLOAT и DOUBLE представляют приблизительные числовые значения. MySQL использует четыре байта для значений одинарной точности и восемь байтов для значений двойной точности.

Для FLOAT, стандарт SQL допускает необязательное указание точности (но не диапазона порядка) в битах после ключевого слова FLOAT в скобках, то есть FLOAT(p). MySQL также поддерживает это необязательное указание точности, но значение точности в FLOAT(p) используется только для определения размера хранения. Точность от 0 до 23 приводит к столбцу одинарной точности 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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/floating-point-types.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API