Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
deemaa Member Откуда: Сообщений: 9 |
Ребята, спасибо огромное! Очень помогли! |
4 сен 15, 09:32 [18106705] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |