介绍
在 SQL Server 中,有时需要将一个小数进行四舍五入,得到特定精度或位数的结果。这个需求在进行精确计算的时候尤其常见,虽然可以通过应用程序来实现该功能,但是最好的办法是使用 T-SQL 中内置的函数。
四舍五入小数函数
SQL Server 提供以下函数实现将小数进行四舍五入:
ROUND ( numeric_expression , length [ ,function ] )
CEILING ( numeric_expression )
FLOOR ( numeric_expression )
ROUND 函数
ROUND 函数会将数字表达式四舍五入到指定的长度或精度。该函数中第二个参数代表需要四舍五入的小数位数,负数表示对小数点左侧进行四舍五入;第三个参数是可选的,用于确定如何处理 0.5 的情况。
以下是 ROUND 函数的语法和例子:
-- 保留两位小数
SELECT ROUND(6.4865, 2)
-- 输出结果:6.49
-- 对数值 5.5 四舍五入
SELECT ROUND(5.5, 0)
-- 输出结果:6
-- 对于数值 5.5,将其四舍五入并保留高位的值
SELECT ROUND(5.5, 0, 1)
-- 输出结果:5
CEILING 函数
CEILING 函数将数字表达式向上取整,也就是返回不小于 numeric_expression 的最小整数:
以下是 CEILING 函数的语法和例子:
SELECT CEILING(5.1) -- 返回 6.
SELECT CEILING(5.8) -- 返回 6.
SELECT CEILING(-5.1) -- 返回 -5.
SELECT CEILING(-5.8) -- 返回 -5.
FLOOR 函数
FLOOR 函数将数字表达式向下取整,也就是返回不大于 numeric_expression 的最大整数:
以下是 FLOOR 函数的语法和例子:
SELECT FLOOR(5.1) -- 返回 5.
SELECT FLOOR(5.8) -- 返回 5.
SELECT FLOOR(-5.1) -- 返回 -6.
SELECT FLOOR(-5.8) -- 返回 -6.
结论
四舍五入取整是常用的数值运算之一,SQL Server 可以通过 ROUND、CEILING 和 FLOOR 函数轻松实现。程序员可以将它们嵌入到复杂的查询中,以保证数值的准确性和可靠性。