Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Округлить в большую сторону  [new]
deemaa
Member

Откуда:
Сообщений: 9
Всем привет
Есть простая , казалось бы задача, округлить до 1 знака после запятой в большую сторону
2.01 = 2.1
2.05 = 2.1
2.09 = 2.1
2.00 = 2.0

но никак не могу решить((
ceiling не подходит, так как обрезает все до целого
round может только по правилам мат. округления , т.е. все что меньше половинки - в меньшую сторону округляет

неужели не простого решения для такой заурядной задачи?
3 сен 15, 18:40    [18105382]     Ответить | Цитировать Сообщить модератору
 Re: Округлить в большую сторону  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
declare @t table (v numeric(18,2));
insert into @t
values
 (2.01), (2.05), (2.09), (2);

select
 v, cast(round(v + 0.05 * sign((v * 100) % 100), 1) as numeric(18,1))
from
 @t;
3 сен 15, 19:16    [18105428]     Ответить | Цитировать Сообщить модератору
 Re: Округлить в большую сторону  [new]
CrazHunt
Member

Откуда:
Сообщений: 40
deemaa,

еще вариант
DECLARE @t TABLE ( v NUMERIC(18, 2) );
INSERT  INTO @t
VALUES  ( 2.01 ),
        ( 2.05 ),
        ( 2.09 ),
        ( 2 );

SELECT  CEILING(v * 10) / 10.0
FROM    @t T
4 сен 15, 08:37    [18106463]     Ответить | Цитировать Сообщить модератору
 Re: Округлить в большую сторону  [new]
deemaa
Member

Откуда:
Сообщений: 9
Ребята, спасибо огромное! Очень помогли!
4 сен 15, 09:32    [18106705]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить