Округление и усечение SQL требуют подробного объяснения.
Вопрос
Я новичок в SQL и PHP и пытаюсь округлить результат средней цены и убрать лишние нули, которые сейчас появляются.
В настоящее время мой результат выглядит следующим образом:$3,005000
Мой код в настоящее время выглядит следующим образом:
$result = mysql_query("SELECT AVG(price) FROM milk WHERE price > 0 ");
$row = mysql_fetch_row ($result);
Я нашел несколько примеров округления и усечения SQL, но, к сожалению, просмотренные мной руководства не дали мне никакой полезной информации о том, где и как мне следует реализовать эти изменения.
Это заставляет меня гадать, где внести изменения, но ни одно из них пока не сработало (очевидно).
Если бы кто-нибудь мог предоставить мне пример того, как округлять и усекать мои результаты, включая то, где именно мне нужно внести эти изменения в моей текущей конфигурации, это было бы очень полезно, и я был бы очень благодарен!Мне очень жаль, если из-за моей тупости мне будет сложнее объяснить решение.
Спасибо!
Решение
MySQL имеет КРУГЛЫЙ() функция.
Итак, просто округлите среднее значение в SQL-запросе:
$result = mysql_query("SELECT ROUND(AVG(price),2) FROM milk WHERE price > 0 ");
Если у вас возникли проблемы с форматированием, вы можете использовать PHP число_формат() функция во время вывода.
Другие советы
Форматирование данных должно выполняться в сценарии, выполняющем запрос, а не в самом запросе.Например, в PHP вы можете написать следующее, используя sprintf
:
$formatted_price = sprintf("%01.2f", $unformatted_price);
(Пример дополнения к руководство по PHP).
Кроме того, обычно значения цен сохраняются как decimal
типы или масштабированные целые числа, а не типы с плавающей запятой, поскольку значения с плавающей запятой не являются точными.