MySQL ROUND Function

摘要:在本教程中,您将学习如何使用 MySQL ROUND()函数将数字四舍五入到指定的小数位数。

MySQL ROUND()函数简介

ROUND()是一个数学函数,可让您将数字四舍五入到指定的小数位数。

下面显示了ROUND()函数的语法:

ROUND(n,[d])
Code language: SQL (Structured Query Language) (sql)

在此语法中, n是要四舍五入的数字, d是该数字四舍五入到的小数位数。

小数位数 ( d ) 是可选的。如果跳过它,它默认为零。

以下语句是等效的:

SELECT ROUND(20.5);
-- 21
SELECT ROUND(20.5, 0);
-- 21
Code language: SQL (Structured Query Language) (sql)

小数位数 ( d ) 可以是正数或负数。如果为负数,则数字n小数点左边的d位变为零。

SELECT ROUND(121.55,-2)
-- 100
Code language: SQL (Structured Query Language) (sql)

ROUND()函数返回一个与要舍入的数字 (n) 具有相同数据类型的数字

精确值数字舍入规则

如果 n 是精确数值,则ROUND()函数使用“向最近的舍入”规则。

这意味着 0.5 或更大的小数部分的值如果是正数则向上舍入到下一个整数,如果是负数则向下舍入到下一个整数。

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)

小于 0.5 的小数部分的值如果是正数,则向下舍入到下一个整数;如果是负数,则向上舍入到下一个整数。

SELECT ROUND(10.4);
-- 10
SELECT ROUND(-10.4);
-- -10
Code language: SQL (Structured Query Language) (sql)

舍入近似值数字规则

对近似值进行舍入时, ROUND()函数的结果取决于 C 库。通常,它使用“舍入到最接近的偶数”规则,即将小数部分正好位于两个整数中间的值舍入到最接近的偶数。

MySQL ROUND()函数示例

我们将使用示例数据库中的orderDetails表进行演示。

以下语句按产品代码查找平均订单行项目值:

SELECT 
    productCode,
    AVG(quantityOrdered * priceEach) avg_order_item_value
FROM
    orderDetails
GROUP BY 
    productCode;    
Code language: SQL (Structured Query Language) (sql)

这是输出:

MySQL ROUND - without using ROUND function

产品的平均订单价值不太可读,因为它包含许多小数点后的数字。

对于平均值,小数点后的数字可能并不重要。因此,您可以使用ROUND()函数将它们舍入到小数点后零位,如以下查询所示:

SELECT 
    productCode,
    ROUND(AVG(quantityOrdered * priceEach)) avg_order_item_value
FROM
    orderDetails
GROUP BY 
    productCode;    
Code language: SQL (Structured Query Language) (sql)

下图显示了输出:

MySQL ROUND - round average values

在本教程中,您学习了如何使用 MySQL ROUND()函数将数字四舍五入到指定的小数位数。

本教程有帮助吗?