如何将小数点四舍五入到上限值

发布于 2024-12-23 00:03:31 字数 410 浏览 2 评论 0原文

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

i am using sql server 2008 procedure, i have total rows divide by per page, i want that if the results contains any decimal value it should be rounded to its upper value.

i used below:

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

where @total is the float, this does not work. i also tried below

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

This works only when the decimal is >= 5, else it does not take the upper value.

i want that if the results is 12.2 then it should return 13

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嘦怹 2024-12-30 00:03:31

您需要使用 CEILING 函数。不是您问题中的 ROUNDFLOOR

You need to use the CEILING function. Not ROUND or FLOOR as in your question.

江城子 2024-12-30 00:03:31

如果您有任何小数值,则应使用 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.

希望能解答您的疑惑

If u have any decimal values it should be rounded to its upper value use CELLING or else use Round it give the accurate values.

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.

Hope it will clear your doubts

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文