Поплавок в БД? в .NET - PullRequest
       34

Поплавок в БД? в .NET

29 голосов
/ 13 февраля 2009

Если у вас есть плавающий элемент в MSSQLServer, на что вы указываете это в .NET?

Можете ли вы преобразовать его в Double или вы потеряете числа?

Ответы [ 6 ]

66 голосов
/ 13 февраля 2009

SQLServer float и C # / VB double имеют одинаковое представление. Это правильное отображение. То, что вы не хотите делать, это сопоставить SQL Server float с C # / VB float, поскольку это может привести к потере точности. SQL Server real отображается на C # / VB float.

Определения с плавающей точкой T-SQL и вещественного типа можно найти по адресу MSDN . Двойное определение C # также можно найти по адресу MSDN , также как и поплавок definition .

12 голосов
/ 27 февраля 2009

Выезд:

В вашем случае собственный тип SQL Server float сопоставляется с SQL Server CLR SqlDouble , а затем Double в .Net

Обновление (май 2016 г.) :

Обновленная версия документа msdn: Отображение данных параметров CRL

0 голосов
/ 13 февраля 2009

Автоматический код, сгенерированный Microsoft XSD, конвертирует SQL float (float по умолчанию) в C # double.
Таким образом, вы можете предположить, что это не большая ошибка.
Пока вы не работаете с плавающей точкой, размер которой по умолчанию.

0 голосов
/ 13 февраля 2009

Это зависит от размера плавающего SQL. Для простого "float", который эквивалентен float (53), вам нужно использовать C # double. Для float (24) или ниже достаточно C # с плавающей запятой, или двойной тоже подойдет.

0 голосов
/ 13 февраля 2009

По моим воспоминаниям, большинство инструментов ORM отобразят его в тип Decimal, который не потеряет точность, как double или float.

0 голосов
/ 13 февраля 2009

C # имеет тип с плавающей запятой, но он также отлично конвертируется в удвоение.

...