如何将小数舍入为上限值

时间:2011-12-27 20:45:23

标签: sql-server-2008 decimal rounding floor

我正在使用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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

如果你有任何小数值,它应该四舍五入到它的上限值使用CELLING,否则使用Round它给出准确的值。

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.

希望它能清除你的怀疑