2011-12-27 61 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. 

希望它會清除你的疑慮