MySQL тип данных с плавающей запятой округлить значения после 6 десятичных знаков - PullRequest
1 голос
/ 28 декабря 2011

У меня есть таблица (скажем, table1 ) с одним полем типа данных float (скажем, field1 ). Все значения в этом поле являются уникальными с точностью до 8 десятичных знаков.

Я выполнил следующие запросы к этой таблице:

SELECT COUNT(*) FROM table1;

Результатом является общее количество записей по запросу: 5179

SELECT COUNT(DISTINCT(field1)) FROM table1;

Результат снова тот же, что и для всех записей: 5179

Приведенные выше два результата показывают, что значения в поле " field1 " являются уникальными.

Но когда я запускаю следующие запросы к этой таблице:

SELECT * FROM table1;

И

SELECT field1 FROM table1;

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

Это из-за типа данных float .

Тогда почему функция DISTINCT () получает фактически сохраненное значение, а не округленное.

EDIT:

Округленные значения - это только те, которые> 1. для значений <0 он работает идеально. </p>

...