хорошо ли карта денег плавать? - PullRequest
2 голосов
/ 18 декабря 2009

сопоставляет ли тип данных sql деньги c # float?

Ответы [ 5 ]

12 голосов
/ 18 декабря 2009

Нет ... он отображается на decimal. Если столбец допускает ноль, он сопоставляется с Nullable<Decimal>.

Отображение данных параметров CLR

float недостаточно точен, чтобы использоваться для денежных расчетов. Вы бы теряли / зарабатывали деньги повсюду.

2 голосов
/ 18 декабря 2009

Только если вы хотите потерять деньги.

2 голосов
/ 18 декабря 2009

Я бы использовал десятичное число.

Тип десятичного значения представляет десятичные числа от положительных 79.228.162.514.264.337.593.543.950.335 к отрицательному 79.228.162.514.264.337.593.543.950.335. Тип десятичного значения подходит для финансовых расчетов, требующих большое количество значимого интеграла и дробные цифры и без округления ошибки. Десятичный тип не исключить необходимость округления. Скорее, это минимизирует ошибки из-за округление.

0 голосов
/ 18 декабря 2009

Нет, float имеет слишком низкую точность для обработки денежных значений. Семь цифр не уйдут далеко. Также тип с плавающей точкой склонен к ошибкам округления из-за того, как представлены числа.

Используйте тип данных Decimal.

0 голосов
/ 18 декабря 2009

номер

Деньги отображаются на Десятичное число . Если столбец MONEY допускает нулевые значения, он будет сопоставлен с Nullable<Decimal>. Подробнее см. Отображение типа SQL-CLR .

Число с плавающей точкой недостаточно точное для численных расчетов, связанных с деньгами. Вы всегда должны делать все свои вычисления, используя десятичные значения.

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