MySQL ROUND Function

Created with Sketch.

MySQL ROUND Function

Summary: in this tutorial, you will learn how to use the MySQL ROUND() function to round a number to a specified number of decimal places.

Introduction to MySQL ROUND() function

The ROUND() is a mathematical function that allows you to round a number to a specified number of decimal places.

The following shows the syntax of the ROUND() function:

ROUND(n,[d])

Code language: SQL (Structured Query Language) (sql)

In this syntax, n is a number to be rounded and d is the number of decimal places to which the number is rounded.

The number of decimal places ( d) is optional. It defaults to zero if you skip it.

The following statements are equivalent:

SELECT ROUND(20.5);
-- 21
SELECT ROUND(20.5, 0);
-- 21

Code language: SQL (Structured Query Language) (sql)

The number of decimal places ( d) can be positive or negative. If it is negative, then the d digits left of the decimal point of the number n becomes zero.

SELECT ROUND(121.55,-2)
-- 100

Code language: SQL (Structured Query Language) (sql)

The ROUND() function returns a number which has the same data type as the number to be rounded (n)

Rounding exact-value number rules

If n is an exact-value number, the ROUND() function uses the “round toward nearest” rule.

It means the value of the fractional part of .5 or greater is rounded up to the next integer if positive or rounded down to the next integer if negative.

SELECT ROUND(10.5);
-- 11
SELECT ROUND(10.6);
-- 11
SELECT ROUND(-10.5);
— -11
SELECT ROUND(-10.6);
— -11

Code language: SQL (Structured Query Language) (sql)

The value of the fractional part less than .5 is rounded down to the next integer if positive or up to the next integer if negative.

SELECT ROUND(10.4);
-- 10
SELECT ROUND(-10.4);
-- -10

Code language: SQL (Structured Query Language) (sql)

Rounding approximate-value number rules

When rounding an approximate-value number, the result of the ROUND() function depends on the C library. Typically, it uses the “round to nearest even” rule i.e., it rounds a value with a fractional part exactly halfway between two integers to the nearest even integer.

MySQL ROUND() function examples

We will use the orderDetails table from the sample database for the demonstration.

The following statement finds the average order line item values by product codes:

SELECT
productCode,
AVG(quantityOrdered * priceEach) avg_order_item_value
FROM
orderDetails
GROUP BY
productCode;

Code language: SQL (Structured Query Language) (sql)

Here is the output:

The average order values of products are not quite readable because it contains many numbers after the decimal points.

For the average values, the number after decimal points may not be important. Therefore, you can use the ROUND() function to round them to zero decimal places as shown in the following query:

SELECT
productCode,
ROUND(AVG(quantityOrdered * priceEach)) avg_order_item_value
FROM
orderDetails
GROUP BY
productCode;

Code language: SQL (Structured Query Language) (sql)

The following picture shows the output:

In this tutorial, you have learned how to use the MySQL ROUND() function to round a number to a specified number of decimal places.

Leave a Reply

Your email address will not be published. Required fields are marked *