title: Float to Decimal Conversion in C#
body: <pre><code>int i = 1;        // -2,147,483,648 to 2,147,483,647
  float f = 2.1f;      // -3.402823e38 to 3.402823e38
  long l = 3;       // -922337203685477508 to 922337203685477507
  double dbl = 4.5;   // -1.79769313486232e308 to 1.79769313486232e308
  decimal dec = 5.2m;  // -79228162514264337593543950335 to 79228162514264337593543950335
  
  dec = i;     // No error
  dec = l;     // No error
  
  dec = f;    // Compiler error
  dec = dbl;  // Compiler error
  
  f = (float)dec; // No error (May loss precision) ok
  
  **dec = (decimal)dbl;** // No error  why it requires ?  
  </code></pre>
  
  <p>Why the above code requires Explicit Cast. 
   Range of float/Double > Decimal ?</p>