3

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

2 回答 2

5

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

于 2011-12-27T20:48:06.283 回答
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.

希望能解开你的疑惑

于 2013-07-29T13:09:31.367 回答