2013-02-26 168 views
4

我得失去一些明显的东西。四舍五入TSQL

select CEILING(85/30) = 2 

85/30 = 2.83333 

我想要的值是3。

不宜吊顶功能围捕给我吗?

回答

12

尝试

SELECT CEILING(85.0/30) 

并为比较

SELECT 85.0/30, 85/30 

第一个例子使用浮筒,第二个使用整数,因此上限函数被击中之前的结果进行舍入。你要做的就是

SELECT CEILING(2) 

不是

SELECT CEILING(2.833333) 
3

更改它:

select CEILING(85/30.0) 

INT/INT产生一个INT,所以三十零分之八十五回合下来(楼)。

1

使用一些类型参数,您不必担心如何输入数据。这里是sam

DECLARE @int_num integer 
DECLARE @int_dem integer 
DECLARE @dec_num decimal(18,0) 
DECLARE @dec_dem decimal(18,0) 

SET @int_num = 85 
SET @int_dem = 30 
SET @dec_num = 85 
SET @dec_dem = 30 

SELECT CEILING(@int_num/@int_dem) AS int_div, CEILING(@dec_num/@dec_dem) AS dec_div 

int_div | dec_div 
---------------------- 
2   | 3