CEILING返回FLOOR结果 - SQL SERVER 2008 R2

Gop*_*opi 5 sql database floor sql-server-2008 ceil

DECLARE @a int;
DECLARE @b int;

SET @a = 9;
SET @b = 2;

SELECT CEILING (@a/@b);
Run Code Online (Sandbox Code Playgroud)

它返回4而不是5.为什么?

编辑:如果商不是整数,我想获得下一个最小整数.

Rob*_*ley 6

尝试:

SELECT CEILING (@a/CAST(@b AS float))
Run Code Online (Sandbox Code Playgroud)

并考虑一下NULLIF(@b,0),以避免分零错误.