DECLARE @a int;
DECLARE @b int;
SET @a = 9;
SET @b = 2;
SELECT CEILING (@a/@b);
它返回 4 而不是 5。为什么?
编辑:如果商不是整数,我想得到下一个最小的整数。
DECLARE @a int;
DECLARE @b int;
SET @a = 9;
SET @b = 2;
SELECT CEILING (@a/@b);
它返回 4 而不是 5。为什么?
编辑:如果商不是整数,我想得到下一个最小的整数。
尝试:
SELECT CEILING (@a/CAST(@b AS float))
还要考虑NULLIF(@b,0)
避免除零错误。
将 9 除以 2 后,小数部分被截断为其整数部分 - 4,而不是四舍五入为 5。尝试:
SELECT 9/2
Resilt是4。然后CEILING(4) = 4
要获得下一个整数,请将变量声明为可以处理小数部分的数据类型:NUMERIC
, FLOAT
, REAL
.
SQL Server 进行整数除法。所以在 SQL Server 中 9/2 = 4。
取整数的上限是相同的整数。