Подтвердить что ты не робот

Поплавок в базе данных? в .NET

Если у вас есть float в MSSQLServer, к чему вы это сопоставляете в .NET?

Можно ли преобразовать его в Double или потерять номера?

4b9b3361

Ответ 1

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

Определения типа плавающего и реального типов T-SQL можно найти в MSDN. С# double definition можно найти на MSDN, а также float определение.

Ответ 2

Отъезд:

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

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

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

Ответ 3

С# имеет тип float, но он также будет преобразовывать в double.

Ответ 4

Из моего воспоминания большая часть инструментов ORM отобразит его в десятичный тип, который не потеряет точность, как двойной или плавающий.

Ответ 5

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

Ответ 6

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