Я не понимаю правила кастинга, когда речь идет о десятичной и двойной.
Это законно делать это
decimal dec = 10;
double doub = (double) dec;
Что меня смущает, так это то, что десятичное число - это 16-байтовый тип данных, а double - 8 байт, поэтому он не отбрасывает двойное и десятичное расширение расширяющейся беседы и поэтому должно быть разрешено неявно; с приведенным выше примером запрещенным?