title: Is it better to cast double as decimal or construct "new" decimal from double?
body: <p>When going from a double to a decimal, presuming my <code>double</code> <em>can</em> be represented as a <code>decimal</code>...</p>
  
  <p>Is it more appropriate to cast a double as a decimal: <br>
  (<a href="http://msdn.microsoft.com/en-us/library/yht2cx7b.aspx" rel="nofollow noreferrer">Explicit Numeric Conversions Table</a>) (Note that this entry erroneously contradicts the former!)</p>
  
  <pre><code>double foo = bar;
  decimal foobar = (decimal)foo;
  </code></pre>
  
  <p>Or is it more appropriate to call the <code>decimal</code> constructor: <br>
  (<a href="http://msdn.microsoft.com/en-us/library/9d9dyd10.aspx" rel="nofollow noreferrer">Decimal Constructor</a>)</p>
  
  <pre><code>double foo = bar;
  decimal foobar = new decimal(foo);
  </code></pre>
  
  <p>I tend to use the <code>decimal</code> constructor, but I wonder reasons to use one versus the other. </p>
  
  <p><strike>From what I can tell the only difference is that an explicit cast of a double below <code>Decimal.MinValue</code> returns a zero, while using the constructor throws an <code>OverflowException</code></strike></p>
  
  <p><strong>EDIT:</strong> @Joren in the comments below notes that the cast throws an <code>OverflowException</code> for small values as well... so apparently the MSDN documentation is incorrect.</p>
  
  <p>Related Questions:<br>
  - <a href="https://stackoverflow.com/questions/6007159/c-sharp-cast-a-double-variable-to-decimal">C# cast a double variable to decimal</a> <br>
  - <a href="https://stackoverflow.com/questions/6839369/automatically-cast-from-double-to-decimal-safely-is-the-following-safe">Automatically cast from double to decimal safely: Is the following safe?</a></p>