Задать вопрос
@FedOTs

Неверная конвертация в MSSQL 2008 r2 из float(6) в int ?

Обнаружил странную проблему в MSSQL
Выполняем код:
select CAST(cast(4.43 as float(6))*100 as int)
Результат 442 ???
При этом этот же код
select CAST(cast(5.43 as float(6))*100 as int)
Результат 543

Объясните пожалуйста где здесь логика ?
  • Вопрос задан
  • 2267 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    MS SQL Server Developer
    5 месяцев
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
  • OTUS
    SQL для разработчиков и аналитиков
    3 месяца
    Далее
Решения вопроса 1
@FedOTs Автор вопроса
Решено так
select CAST(round(cast(4.43 as float(6))*100,0) as int)

Но всё же остается вопрос. Почему MSSQL так странно конвертирует ?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы