сопоставляет ли тип данных sql деньги c # float?
Нет ... он отображается на decimal. Если столбец допускает ноль, он сопоставляется с Nullable<Decimal>.
decimal
Nullable<Decimal>
Отображение данных параметров CLR
float недостаточно точен, чтобы использоваться для денежных расчетов. Вы бы теряли / зарабатывали деньги повсюду.
float
Только если вы хотите потерять деньги.
Я бы использовал десятичное число.
Тип десятичного значения представляет десятичные числа от положительных 79.228.162.514.264.337.593.543.950.335 к отрицательному 79.228.162.514.264.337.593.543.950.335. Тип десятичного значения подходит для финансовых расчетов, требующих большое количество значимого интеграла и дробные цифры и без округления ошибки. Десятичный тип не исключить необходимость округления. Скорее, это минимизирует ошибки из-за округление.
Нет, float имеет слишком низкую точность для обработки денежных значений. Семь цифр не уйдут далеко. Также тип с плавающей точкой склонен к ошибкам округления из-за того, как представлены числа.
Используйте тип данных Decimal.
Decimal
номер
Деньги отображаются на Десятичное число . Если столбец MONEY допускает нулевые значения, он будет сопоставлен с Nullable<Decimal>. Подробнее см. Отображение типа SQL-CLR .
Nullable<Decimal>.
Число с плавающей точкой недостаточно точное для численных расчетов, связанных с деньгами. Вы всегда должны делать все свои вычисления, используя десятичные значения.