Spec-Zone .ru
спецификации, руководства, описания, API

11.2.3. Типы с плавающей точкой (Приближенное значение) - FLOAT,DOUBLE

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

Для FLOAT, стандарт SQL разрешает дополнительную спецификацию точности (но не диапазон экспоненты) в битах после ключевого слова FLOAT в круглых скобках. MySQL также поддерживает эту дополнительную спецификацию точности, но значение точности используется только, чтобы определить размер хранения. Точность от 0 до 23 результатов в 4-байтовой одинарной точности FLOAT столбец. Точность от 24 до 53 результатов в 8-байтовой двойной точности DOUBLE столбец.

MySQL разрешает нестандартный синтаксис: FLOAT(M,D) или REAL(M,D) или DOUBLE PRECISION(M,D). Здесь,"(M,D)"средства чем значения могут быть сохранены до M цифры те, всего, который D цифры могут быть после десятичной точки. Например, столбец, определенный как FLOAT(7,4) будет похож -999.9999 когда выведено на экран. MySQL выполняет округление, храня значения, так, если Вы вставляете 999.00009 в a FLOAT(7,4) столбец, приблизительный результат 999.0001.

Поскольку значения с плавающей точкой приблизительны и не сохраненные как точные значения, попытки обработать их, поскольку точный в сравнениях может привести к проблемам. Они также подвергаются зависимостям от реализации или платформе. Для получения дополнительной информации см. Раздел C.5.5.8, "Проблемы со Значениями С плавающей точкой"

Для максимальной мобильности хранение требования кода приблизительных значений числовых данных должно использовать FLOAT или DOUBLE PRECISION без спецификации точности или числа цифр.