Немного не по теме, но это то, что каждый должен знать при работе с типом Money в SQLServer.
Вы не хотите использовать двойное число, вы хотите использовать десятичное число.
Двойной тип - это длинное число с плавающей точкой, и арифметика с плавающей запятой никогда не должна использоваться для финансовых расчетов.
Подумайте об этом, фракции 1/3, 1/3 и 1/3 равны 1. Однако, когда выражается как двойной, то есть:
.3333 + .3333 + .3333 = .9999, а не 1.
Вы можете подумать, что потерять тысячную часть цента тривиально, но это не так, когда вы работаете с кем-то, тратя деньги.
Использовать System.Decimal.