Округление и усечение SQL требуют подробного объяснения.

StackOverflow https://stackoverflow.com/questions/1603694

  •  05-07-2019
  •  | 
  •  

Вопрос

Я новичок в 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 типы или масштабированные целые числа, а не типы с плавающей запятой, поскольку значения с плавающей запятой не являются точными.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top