2011-12-27 58 views
2

我正在使用sql server 2008程序,我的总行数除以每页,我希望如果结果包含任何十进制值,它应该四舍五入到其上限值。如何将小数点四舍五入到上限值

我下面使用:

SELECT FLOOR(@TOTAL/CAST(@PageSize AS FLOAT)) AS TOTALPAGES, @TOTAL AS TOTALROWS 

其中@total是浮动,这是行不通的。我也试过下面

SELECT ROUND(@TOTAL/CAST(@PageSize AS FLOAT),0) AS TOTALPAGES, @TOTAL AS TOTALROWS 

这只有当小数是> = 5,否则它不会取上限值。

我想,如果结果是12.2,那么它应该返回13

回答

4

您需要使用CEILING功能。不是ROUNDFLOOR在你的问题。

+0

此外,你可以做到以下几点:地板(值+ .5)。更喜欢吊顶功能,只是把它作为一个供参考的东西。 – Fred 2011-12-27 21:01:06

+0

感谢天花板为我工作,非常感谢 – Abbas 2011-12-27 21:21:12

0

如果你有任何十进制值,它应该四舍五入到它的上限值使用CELLING或使用圆形它给出准确的值。

Example for CEILING: 
SELECT CEILING($123.45), CEILING($-123.45), CEILING($0.0) or 
select CEILING(1.12) it takes 2 

Example for ROUND: 
But in Round see 
select round(1.12,1) it takes as 1.10. 
select round(1.15,1) it takes as 1.20. 

希望它会清除你的疑虑