Описание : в этой статье вы узнаете, как использовать функцию ROUND() в MySQL для округления числа до указанного числа десятичных знаков.
ROUND(), это математическая функция, которая позволяет округлять число до указанного количества десятичных знаков.
Ниже показан синтаксис функции ROUND():
ROUND(n,[d])
В этом синтаксисе n это число, которое должно быть округлено, и d – количество десятичных знаков, до которых округляется число.
Количество десятичных знаков (d) не является обязательным. По умолчанию он равен нулю, если вы пропустите его.
Следующие утверждения эквивалентны:
SELECT ROUND(20.5); -- 21 SELECT ROUND(20.5, 0); -- 21
Количество знаков после запятой (d) может быть положительным или отрицательным. Если оно отрицательно, то цифры слева от десятичной точки числа n становятся равными нулю.
SELECT ROUND(121.55,-2) -- 100
Функция ROUND() возвращает номер, который имеет один и тот же тип данных , как количество , чтобы быть округлены (n).
Если n – число с точным значением, функция ROUND() использует правило «округление до ближайшего».
Это означает, что значение дробной части .5 или больше округляется до следующего целого числа, если положительное, или округляется до следующего целого числа, если отрицательное.
SELECT ROUND(10.5); -- 11 SELECT ROUND(10.6); -- 11
SELECT ROUND(-10.5); -- -11 SELECT ROUND(-10.6); -- -11
Значение дробной части меньше чем .5 округляется до следующего целого числа, если оно положительное, или до следующего целого числа, если оно отрицательное.
SELECT ROUND(10.4); -- 10 SELECT ROUND(-10.4); -- -10
При округлении числа приближенного значения результат функции ROUND() зависит от библиотеки C. Как правило, он использует правило «округлить до ближайшего четного», т. е. округляет значение с дробной частью ровно посередине между двумя целыми числами до ближайшего четного целого числа.
Мы будем использовать таблицу orderDetails из образца базы данных для демонстрации.
Следующий оператор находит средние значения позиций строки заказа по кодам продукта:
SELECT productCode, AVG(quantityOrdered * priceEach) avg_order_item_value FROM orderDetails GROUP BY productCode;
Вот вывод:
Средние значения заказа товаров не совсем читабельны, поскольку содержат много чисел после десятичных знаков.
Для средних значений число после десятичной точки может не иметь значения. Поэтому вы можете использовать функцию ROUND() для округления их до нуля, как показано в следующем запросе:
SELECT productCode, ROUND(AVG(quantityOrdered * priceEach)) avg_order_item_value FROM orderDetails GROUP BY productCode;
Следующая картинка показывает результат:
Из этой статьи вы узнали, как использовать функцию ROUND() в MySQL для округления числа до указанного числа десятичных знаков.