I don't understand the casting rules when it comes to decimal and double.
It is legal to do this
decimal dec = 10;
double doub = (double) dec;
What confuses me however is that decimal is a 16 byte datatype and double is 8 bytes so isn't casting a double to a decimal a widening conversation and should therefore be allowed implicitly; with the example above disallowed?
double doub = 3.2;
decimal dec = doub; // CS0029: Cannot implicitly convert type 'double' to 'decimal'