MySQL ROUND函数

时间:2019-11-20 08:52:26  来源:igfitidea点击:

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

MySQL ROUND()函数简介

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

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

ROUND(n,[d])

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

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

以下语句是等效的:

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

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

SELECT ROUND(121.55,-2)
-- 100

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

小于0.5的分数部分的值如果为正则四舍五入到下一个整数,如果为负则四舍五入到下一个整数。

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

四舍五入近似值数字规则

四舍五入一个近似值数字时,ROUND()函数的结果取决于C库。
通常,它使用"四舍五入到最接近的偶数"规则,即,将一个小数部分的值四舍五入到两个整数到最接近的偶数之间的一半。

MySQL ROUND()函数示例

我们将使用示例数据库中的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;

下图显示了输出:

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