Как десятичные знаки преобразуются с помощью FLOAT в SQL Server 2000/2005/2008
-
11-09-2019 - |
Вопрос
в этом ТАК вопрос ОП хотел отбросить 0 в десятичных знаках для своих результатов.Пример, который я привел (ниже), чтобы обойти эту проблему, заключался в CAST с DECIMAL, а затем с CAST с FLOAT.
например
SELECT CAST(0.55 AS FLOAT)
Используя приведенный выше пример и запустив его в SQL Server 2005/2008, можно было бы получить правильный результат — 0,55.Но, как отметил Питер в другом посте, запуск его в SQL Server 2000 дает 0,55000000000000004.
Итак, мои вопросы:
Следует ли любой ценой избегать FLOAT, когда дело доходит до преобразования данных в SQL?
Почему
cast(0.55 as float)
урожайность0.55000000000000004
в SQL2k еще0.55
в последующих выпусках?Сделала ли Microsoft использование FLOAT более надежным в более поздних версиях SQL Server?
Спасибо за ваше время.
Решение
Мое личное золотое правило:избегайте плавания.Я не помню, чтобы в последние годы использовал float.
Во всех бизнес-сценариях, которые я рассматривал в последнее время, мне приходилось хранить значения валют или даже числа с фиксированной точностью, поэтому я предпочитаю использовать DECIMAL
или MONEY
.