SQL Server обеспечивает дополнительную точность для чисел с плавающей точкой? - PullRequest
3 голосов
/ 30 июля 2009

Точность - это одно, а точность - ??? 1001 *

У меня есть текстовый файл со следующими координатами:

41.88694340165634   -87.60841369628906

Когда я вставляю это в представление таблицы SQL Server Mgmt Studio, это приводит к следующему:

41.886943401656339  -87.608413696289062

Я сплю? Как это возможно?

Я вставляю из блокнота, и это необработанный текст. Та же проблема, если я набираю символы напрямую.

Откуда SQL Server получает дополнительную точность?

Ответы [ 3 ]

6 голосов
/ 30 июля 2009

Это не добавляет точности, оно просто округляет до ближайшего представления IEEE с плавающей запятой. Когда вы конвертируете это обратно в десятичное, оно будет выглядеть ТОЛЬКО как полученное.

3 голосов
/ 30 июля 2009

По данным Books-On-Line:

Float: Типы данных с приблизительным числом для использования с числовыми данными с плавающей точкой. Данные с плавающей точкой являются приблизительными ; следовательно, не все значения в диапазоне типов данных могут быть представлены точно.

Акцент мой.

1 голос
/ 30 июля 2009

Я лично не видел этого, но, возможно, просто студия управления SQL-сервером показывает «представление» с плавающей точкой, т.е. как значение будет храниться в БД. Помните, что все поплавки в любом случае приблизительны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...