Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 округление  [new]
Imilia
Guest
select left(cast(cast('5.99999' as real) as char(10)),5), left(cast(cast('55.99999' as real) as char(10)),5)

5.999 56

Почему так?

MSSQL 2005
22 сен 15, 11:25    [18179387]     Ответить | Цитировать Сообщить модератору
 Re: округление  [new]
Glory
Member

Откуда:
Сообщений: 104751
Imilia
Почему так?

Потому что числа с плавающей точкой и с фиксированнйо точкой ведут себя по разному.
22 сен 15, 11:30    [18179410]     Ответить | Цитировать Сообщить модератору
 Re: округление  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8489
Imilia

Почему так?

MSSQL 2005


потому, что Вы потеряли точность, читайте справку.
22 сен 15, 13:23    [18180120]     Ответить | Цитировать Сообщить модератору
 Re: округление  [new]
Mairos
Member

Откуда:
Сообщений: 555
Imilia,
select left(convert(varchar,convert(real,'5.99999'),0),5), left(convert(varchar,convert(real,'55.99999'),128),5)

Получаем - 5.999 и 55.99
22 сен 15, 15:35    [18181010]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить