Попробуй вывести так:
PHP код:
SELECT format(/*тут столбец с твоим значением*/, 7) FROM таблица
Если в первом посте ты привёл лишь пример, который сочинил на ходу, а на деле говоришь о том, что в базе значение округляется, то "проблема" заключается в том, что ты не указываешь сколько знаков после точки нужно отображать, а по умолчанию в MySQL выводит, если мне память не изменяет, только два знака после точки. Когда ты делаешь запрос на отображение значения, MySQL не просто отображает число, обрубая все "лишние" значения после точки, а преобразует его в тот вид, который требуется
(соответственно, округляя).
А вообще, если нужна точность, то следует использовать тип "
Decimal", ибо в MySQL типы "Float" и "Double" хранят приблизительные значения числа
(об этом написано тут) и связано это с тем, что в MySQL для обработки Float-значений используется
стандарт IEEE 754, о котором можешь почитать в
википедии.
- - - Добавлено - - -
UPD: Кстати, говоря о Decimal, забыл упомянуть, что вывести данные можно и так:
PHP код:
SELECT cast(/*тут столбец с твоим значением*/ AS decimal(9, 6)) FROM `таблица`
Если вкратце, то тут ты переводишь из Float в Decimal, указывая в "decimal(16, 6)", что всего нужно отобразить 16 знаков, из которых 6 знаков будут после точки.
"16" там стоит из расчёта на то, что 10 символов может быть до точки и 6 символов после. Если указать, например, "7, 6", а в столбце окажется значение "11.123456", то MySQL уже вернёт неправильное значение
(обычно это отрицательное число, состоящее из всех девяток. И количество девяток до/после точки будет зависеть от той "формулы", которую ты указал в скобках после decimal. Для запроса с "decimal(7, 6)" и значением столбца в "11.123456", MySQL вернёт "-9,999999", а для "decimal(6, 6) вернёт "-0,999999"")