2011-12-27 5 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. Не ROUND или FLOOR как на ваш вопрос.

+0

Кроме того, вы можете сделать следующее: слово (значение + .5). Предпочитаете функцию потолка, просто поместив это как FYI больше всего на свете. – Fred

+0

спасибо, что потолок работал для меня, спасибо большое – Abbas

0

Если u имеет любые десятичные значения, оно должно быть округлено до его верхнего значения, используйте 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. 

Надеется, что это будет ясно ваши сомнения

Смежные вопросы